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

5uzkadbs  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(558)

我正在尝试从我的oracle11gr2(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列。
有没有一种方法可以使用importall表,修复2005sql类型错误,或者告诉sqoop如何“动态”解决它?
谢谢!

nnt7mjpx

nnt7mjpx1#

您不应该使用--direct命令,因为sqoop文档中说“sqoop的直接模式不支持blob、clob或longvarbinary列的导入。对这些列使用基于jdbc的导入;不要向导入工具提供--direct参数。“

相关问题