通过Sqoop将Oracle中表导入到HDFS时报错Error during import: No primary key could be found

在使用Sqoop 1.4.6从Oracle数据库导入数据到HDFS时遇到Error during import: No primary key could be found错误。该问题是因为表中缺少主键。解决方案包括:1) 在Oracle表中添加主键;2) 使用'-m 1'进行顺序导入,或使用 '--split-by' 参数指定表的列进行分区。推荐使用后者,因为它能提高导入效率。
摘要由CSDN通过智能技术生成

       我的Sqoop版本是1.4.6,在利用Sqoop将Oracle数据导入到HDFS时候回出现一些异常,因此我们我们要注意以下几点:

      sqoop import --connect jdbc:oracle:thin:@192.168.8.110:1521:orcl --table TRANS_GJJY02 --username sky --password 123456 -m 8 --target-dir /usr/input/

      错误:ERROR tool.ImportTool: Error during import: No primary key could be found for table TRANS_GJJY02. Please specify one with --split-by or perform a sequential import with '-m 1'.

      根据错误提示我们可以知道这是因为Oracle表中的数据没有设置主键。而针对这个问题有两种杰解决方案:

      方案一:老老实实地在Oracle表中设置主键,然后再执行这个导入语句,就不会出错。

      方案二:有些数据无法设置主键,比如很多的监测记录数据,找不到唯一值,针对这种数据,我们可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值