Oracle 11g Sqoop导入作业失败:org.kitesdk.data.ValidationException错误
解决Sqoop导入Oracle表时的ValidationException错误
我来帮你搞定这个Sqoop导入的问题!你遇到的报错核心是:Sqoop自动生成的数据集名称里包含了点号(.),而Kite SDK要求数据集名称只能由字母、数字和下划线组成,这就触发了校验失败。
这个问题的根源很明确——你导入的Oracle表带了schema前缀(C46010.HISTCONTACT里的C46010是schema),Sqoop默认会把schema和表名用点号拼接作为数据集名称,刚好违反了Kite的命名规则。
下面是直接可行的解决办法:
手动指定合法的数据集名称:在你的Sqoop命令里添加
--dataset-name参数,把点号替换成下划线或者其他符合规则的字符。比如我们把数据集名称设为C46010_HISTCONTACT。
修改后的完整命令示例如下(我补全了你命令里截断的-as-p为常见的--as-parquetfile,如果你的实际格式不同,替换成你原本的即可):$ 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 --dataset-name C46010_HISTCONTACT额外提醒:以后导入带schema的Oracle表时,记得都加上这个参数,避免重复踩坑。Kite的命名规则是硬性校验,必须严格遵守字母、数字、下划线的组合要求。
内容的提问来源于stack exchange,提问作者Yusata
相关产品推荐
相关产品推荐

