Oracle

时间:2018-04-15 12:26:30

标签: oracle hadoop ojdbc sqoop

Oracle 11g的Sqoop导入作业失败,错误

  

错误sqoop.Sqoop:运行Sqoop时遇到异常:   org.kitesdk.data.ValidationException:数据集名称   81fdfb8245ab4898a719d4dda39e23f9_C46010.HISTCONTACT不是   字母数字(加'_')

这是完整的命令:

$ sqoop job --create ingest_amsp_histcontact -- import --connect "jdbc:oracle:thin:@<IP>:<PORT>/<SID>" --username "c46010" -P --table C46010.HISTCONTACT --check-column ITEM_SEQ --target-dir /tmp/junk/amsp.histcontact -as-parquetfile -m 1 --incremental append

$ sqoop job --exec ingest_amsp_histcontact

它是镶木地板格式的增量导入。令人惊讶的是,如果我使用其他格式,例如--as-textfile。

,它的效果非常好

这与Sqoop job fails with KiteSDK validation error for Oracle import

类似

但我使用ojdbc6并切换到ojdbc7也不行。

Sqoop版本:1.4.7

Oracle版:11g

谢谢, Yusata

3 个答案:

答案 0 :(得分:1)

有一种解决方法,省略“。” --table参数中的字符对我有效,因此我使用--table <schema>.<table_name>代替--table <table_name>。但是,如果从Oracle中的另一个模式导入表,则无效。

答案 1 :(得分:1)

我知道这有点晚了,但是我遇到了同样的问题,因此我通过省略实木复合地板文件选项解决了它。

尝试在没有

的情况下运行作业
-as-parquetfile

答案 2 :(得分:0)

问题是&#34;。&#34;在--target-dir选项中。解决方法:将目标目录更改为&#34; / tmp / junk / amsp_histcontact&#34;。当sqoop作业完成时,将hdfs目标目录重命名为&#34; /tmp/junk/amsp.histcontact"