Azure SYNAPSE Analytics 'te sunucusuz SQL havuzu kullanarak CSV veya Parquet dosyalarından UTF-8 metnini okuma sorunlarını giderme

Bu makalede, Azure SYNAPSE Analytics 'te sunucusuz SQL havuzu kullanarak CSV veya Parquet dosyalarından UTF-8 metnini okumak için sorun giderme adımları sağlanmaktadır.

UTF-8 metni sunucusuz SQL havuzu kullanarak bir CSV veya PARQUET dosyasından Okunmuşsa, sorgu UTF8 olmayan harmanlamalara sahip VARCHAR sütunları döndürürse, ü ve ö gibi bazı özel karakterler yanlış dönüştürülür. Bu, SQL Server ve Azure SQL 'de bilinen bir sorundur. UTF8 olmayan SYNAPSE harmanlaması, müşteri sorgularının etkileneceğini sağlamak için SQL 'de varsayılandır. Standart Ingilizce karakterler ve genişletilmiş Latin karakterlerinden oluşan bir alt küme kullanan müşteriler dönüştürme hatalarını fark etmez. Yanlış dönüştürme, sunucusuz SQL havuzunda UTF-8 metnini okumak Için her zaman UTF-8 harmanlamalarını kullanma bölümünde daha ayrıntılı olarak açıklanmıştır

Geçici çözüm

Bu sorunun geçici çözümü, CSV veya PARQUET dosyalarından UTF-8 metnini okurken her zaman UTF-8 harmanlaması kullanmaktır.

  • Çoğu durumda, veritabanı üzerinde UTF8 harmanlaması ayarlamanız yeterlidir (meta veri işlemi).

    alter database MyDB
           COLLATE Latin1_General_100_BIN2_UTF8;
    
  • OPENROWSET veya dış tablodaki VARCHAR sütununda açıkça harmanlama tanımlayabilirsiniz:

    select geo_id, cases = sum(cases)
    from openrowset(
             bulk 'latest/ecdc_cases.parquet', data_source = 'covid', format = 'parquet'
         ) with ( cases int,
                  geo_id VARCHAR(6) COLLATE Latin1_General_100_BIN2_UTF8 ) as rows
    group by geo_id
    
  • UTF8 verilerini okuyan dış tablolarda UTF8 harmanlaması belirtmediyseniz, etkilenen dış tabloları yeniden oluşturmanız ve VARCHAR sütunlarında UTF8 harmanlaması ayarlamanız gerekir (meta veri işlemi).

Sonraki adımlar