我正在尝试从我的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如何“动态”解决它?
谢谢!
1条答案
按热度按时间nnt7mjpx1#
您不应该使用--direct命令,因为sqoop文档中说“sqoop的直接模式不支持blob、clob或longvarbinary列的导入。对这些列使用基于jdbc的导入;不要向导入工具提供--direct参数。“