Memecahkan masalah pembacaan teks UTF-8 dari file CSV atau Parquet menggunakan kumpulan SQL tanpa server di Azure Synapse Analytics
Artikel ini berisi langkah-langkah pemecahan masalah pembacaan teks UTF-8 dari file CSV atau Parquet menggunakan kumpulan SQL tanpa server di Azure Synapse Analytics.
Saat teks UTF-8 dibaca dari file CSV atau PARQUET menggunakan kumpulan SQL tanpa server, beberapa karakter khusus seperti ü dan ö akan salah dikonversi jika kueri menampilkan kolom VARCHAR dengan kolase non-UTF8. Ini adalah masalah umum di SQL Server dan Azure SQL. Kolase non-UTF8 adalah default dalam Synapse SQL sehingga pertanyaan pelanggan akan terpengaruh. Pelanggan yang menggunakan karakter bahasa Inggris standar dan beberapa subset karakter Latin yang diperluas mungkin tidak melihat kesalahan konversi. Konversi yang salah dijelaskan secara lebih rinci dalam Selalu gunakan kolase UTF-8 untuk membaca teks UTF-8 dalam kumpulan SQL tanpa server
Solusi Sementara
Solusi untuk masalah ini adalah selalu menggunakan kolase UTF-8 saat membaca teks UTF-8 dari file CSV atau PARQUET.
Dalam banyak kasus, Anda hanya perlu mengatur kolase UTF8 pada database (operasi metadata).
alter database MyDB COLLATE Latin1_General_100_BIN2_UTF8;
Anda dapat secara eksplisit menentukan kolase pada kolom VARCHAR di OPENROWSET atau tabel eksternal:
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
Jika tidak menentukan kolase UTF8 pada tabel eksternal yang membaca data UTF8, Anda perlu membuat ulang tabel eksternal yang terpengaruh dan mengatur kolase UTF8 pada kolom VARCHAR (operasi metadata).