Ошибка длины данных при обработке данных из файла Hive в Blob в Azure DataWarehouse - PullRequest
0 голосов
/ 10 января 2019

Я выбираю данные столбца в Hive с помощью функции подстроки и указываю длину 3999. Я сохраняю выбранные столбцы в файле BLOB-объектов в Azure, а затем пытаюсь загрузить файл в Azure DataWarehouse с помощью фабрики данных Azure. Теперь я сталкиваюсь с ошибками для нескольких строк, где говорится, что длина данных превысила 3999 (MaxLength).

Итак, для устранения неполадок я сделал подстроку длиной 2000 в Hive и сохранил данные в файл. На этот раз я не получил никаких ошибок. Однако, когда я проверил данные в столбце в DataWarehouse, некоторые элементы имеют длину более 2000. Это в основном происходит из-за данных, поступающих в китайских символах.

1 Ответ

0 голосов
/ 10 января 2019

Это связано с тем, что некоторые символы (например, китайские) кодируются в несколько байтов во многих популярных форматах, таких как UTF-8. Ваш тест длины перед отправкой на фабрику данных подсчитывает количество символов UTF-8, тогда как сама фабрика данных подсчитывает количество байтов (или символов ascii).

Перед нажатием измените кодировку или измерьте длину строки в байтах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...