Sqoop:导入所有转换blob类型的表

时间:2017-02-06 14:46:19

标签: oracle sqoop

我正在尝试从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列。

有没有办法使用import-all-tables,修复2005 SQL类型错误,或者告诉Sqoop如何“动态”解决它?

谢谢!

1 个答案:

答案 0 :(得分:0)

你不应该使用--direct命令,因为sqoop文件说“Sqoop的直接模式不支持导入BLOB,CLOB或LONGVARBINARY列。对这些列使用基于JDBC的导入;不提供--direct参数到导入工具。“

相关问题