Фабрика данных не загружает большой столбец

У нас есть таблица Azure SQL, которую я перемещаю из традиционной базы данных в таблицу Azure Synapse Analytics (DW) для долгосрочного хранения, и поэтому ее можно удалить из нашей производственной базы данных. Это системная таблица для устаревшей системы, которую мы использовали (Salesforce). У меня есть столбец в этой таблице в БД, который является varchar (max), и его массивный. MAX (LEN (FIELD) - 1585521. Я пробовал использовать фабрику данных для перемещения таблицы в DW, но это не помогло в этом массивном столбце. Я смоделировал таблицу DW как зеркало производственной таблицы БД, но она не загружается и пытался несколько раз. Я изменил столбец DW, который не работает, на nvarchar (max), но он все еще не работает (думал, что это может быть не-юникод, вызывающий сбой). Любые идеи? Это сбивает меня с толку, потому что данные существуют в нашей производственной БД, но не будет красиво и спокойно перемещаться в наш ХД.

Я пытался несколько раз и получил эти сообщения об ошибках (второе после изменения столбца DW с varchar (max) на nvarchar (max):

HadoopSqlException: Arithmetic overflow error converting expression to data type NVARCHAR."}

HadoopExecutionException: Too long string in column [-1]: Actual len = [4977]. MaxLEN=[4000]

person Jayhoffa75    schedule 13.11.2020    source источник


Ответы (1)


В настоящее время при использовании Polybase это ограничение составляет 1 МБ, а длина столбца больше этого значения. Обходной путь - использовать массовую вставку при копировании ADF или разбить исходные данные на столбцы 8K и загрузить в целевую промежуточную таблицу с 8K столбцами. Отметьте это document, чтобы узнать больше об этом ограничении.

Если вы используете внешние таблицы PolyBase для загрузки таблиц, определенная длина строки таблицы не может превышать 1 МБ. Когда строка с данными переменной длины превышает 1 МБ, вы можете загрузить строку с помощью BCP, но не с помощью PolyBase.

У меня это сработало, когда я использовал опцию массовой вставки в конвейер ADF.

person HarithaMaddi-MSFT    schedule 16.11.2020