Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье приведены инструкции по устранению неполадок для чтения текста UTF-8 из CSV-файлов или Parquet с помощью бессерверного пула SQL в Azure Synapse Analytics.
Если текст UTF-8 считывается из CSV-файла или PARQUET с использованием бессерверного пула SQL, некоторые специальные символы, такие как ü
и ö
неправильно преобразуются, если запрос возвращает столбцы varchar с параметрами сортировки, отличными от UTF8. Эта известная проблема в SQL Server и Azure SQL. В Synapse SQL параметры сортировки по умолчанию не соответствуют UTF8, поэтому это может повлиять на запросы клиентов. Клиенты, использующие стандартные английские символы и некоторые подмножества расширенных латинских символов, могут не заметить ошибки преобразования. Неправильное преобразование подробно описано в разделе "Всегда использовать параметры сортировки UTF-8 для чтения текста UTF-8 в бессерверном пуле SQL".
Обходной путь
Решение этой проблемы заключается в том, чтобы всегда использовать параметры сортировки UTF-8 при чтении текста UTF-8 из CSV-файлов или PARQUET.
Во многих случаях просто необходимо задать параметры сортировки UTF8 в базе данных (операция метаданных).
alter database MyDB COLLATE Latin1_General_100_BIN2_UTF8;
Вы можете явно определить параметры сортировки в столбце varchar в OPENROWSET или внешней таблице:
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 не указаны во внешних таблицах, считывающих данные UTF8, необходимо повторно создать затронутые внешние таблицы и задать параметры сортировки UTF8 для столбцов varchar (операция метаданных).