Я пытаюсь импортировать и экспортировать таблицы из SQL Server в DB2 через HDFS / Sqoop.
я использую
--fields-terminated-by '\001'
--lines-terminated-by '\002'
--hive-replace-delims '<hivedelims>'
and/or --hive-drop-import-delims
Я почти все могу сделать, но ...
Некоторые столбцы в SQL Server относятся к типу nvarchar(max) и содержат данные в виде текста, например
"...[CR][LF] ..."
или XML-текст, содержащий вертикальную черту: '|'
или простой текст, содержащий либо \ n, либо [LF], либо [CR] .... и т. д. и т. д.
Судя по всему, столбец может содержать любой текст ....
Я хотел бы импортировать такие ячейки как один кусок в HDFS и экспортировать их также как один кусок в DB2 ...
Я импортирую, используя import-all-tables, а не одну за другой, иначе я подумал об использовании --map-column-java для этих конкретных таблиц / столбцов ..?
Однако любая комбинация, которую я пробовал, оставляет мне несколько таблиц, которые нельзя экспортировать, поскольку они интерпретируются с разным количеством столбцов из-за вышеупомянутого.
Я надеюсь, что это имеет смысл, в противном случае я более чем готов уточнить некоторые фактические данные (анонимные, поскольку они содержат конфиденциальные данные)
Спасибо заранее за любые предложения.





Хорошо, я наконец решил это следующим образом:
В разделе sqoop import-all-tables:
--hive-drop-import-delims \
--fields-terminated-by '\001' \
--lines-terminated-by '\n' \
В разделе экспорта sqoop:
--input-fields-terminated-by '\001' \
--input-lines-terminated-by '\n' \
Это позаботилось обо всем.
Сейчас у меня закончилась память, но это совсем другая история ;-)
Надеюсь, это будет полезно для других.