Sqoop: импортировать все таблицы, конвертирующие типы BLOB-объектов

Я пытаюсь импортировать все таблицы из моего Oracle 11g R2 (import-all-tables) и сталкиваюсь с проблемой с типом CLOB. (Используя CDH 5.9, Sqoop 1.4.6-cdh5.9.1)

Первая попытка:

sqoop import-all-tables --connect ... --hive-import --hive-overwrite --as-parquet-file --autoreset-to-one-mapper -m XX --direct

Таблицы корректно импортируются до тех пор, пока не будет найдена одна таблица со столбцом CLOB, и выдает следующую ошибку: Не удается преобразовать в тип SQL 2005.

Вторая попытка:

sqoop import-all-tables -D oraoop.disabled=true --connect ... --hive-import --hive-overwrite --as-parquet-file --autoreset-to-one-mapper -m XX

Я получаю ту же ошибку.

Третья попытка

sqoop import --connect ... --hive-import --hive-overwrite --as-parquet-file --autoreset-to-one-mapper -m XX --table MyClobTable --map-column-java CLOBCOL=String

Это работает, поэтому я пытаюсь получить то же самое со всеми таблицами:

sqoop import-all-tables --connect ... --hive-import --hive-overwrite --as-parquet-file --autoreset-to-one-mapper -m XX --map-column-java CLOBCOL=String

Это терпит неудачу, потому что только у одной из моих таблиц есть столбец CLOBCOL.

Есть ли способ использовать импорт-все-таблицы, исправить ошибку типа SQL 2005 или сообщить Sqoop, как решить ее "на лету"?

Спасибо!

1 ответ

Вы не должны использовать команду --direct, так как документ sqoop говорит: "Прямой режим Sqoop не поддерживает импорт столбцов BLOB, CLOB или LONGVARBINARY. Используйте импорт для этих столбцов на основе JDBC; не предоставляйте аргумент --direct для импорта инструмент."

Другие вопросы по тегам