Oracle 的 Sqoop 导入作业错误 org.kitesdk.data.ValidationException

Sqoop import job error org.kitesdk.data.ValidationException for Oracle

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

ERROR sqoop.Sqoop: Got exception running Sqoop: org.kitesdk.data.ValidationException: Dataset name 81fdfb8245ab4898a719d4dda39e23f9_C46010.HISTCONTACT is not alphanumeric (plus '_')

这是完整的命令:

$ 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

甲骨文版本:11g

谢谢, 汤田

有一个解决方法,省略“.” --table 参数中的字符对我有用,所以我使用 --table <table_name> 而不是 --table <schema>.<table_name>。但是,如果您从 Oracle 中的另一个模式导入 table,这将不起作用。

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

我知道有点晚了,但我遇到了同样的问题,我通过省略 parquet 文件选项解决了它。

尝试 运行 没有

的工作
-as-parquetfile