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
答案 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"