sqoop导出插入重复条目

mbjcgjjk  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(323)

我试图理解sqoop导出是如何工作的,我在mysql中有一个表站点,它包含两列id和url,并包含两行

1,www.yahoo.com
2,www.gmail.com

表没有主键
当我通过执行下面的命令将hdfs中的条目导出到mysql site表时,它会插入重复的条目
我在hdfs中有以下条目

1,www.one.com
2,www.2.com
3,www.3.com
4,www.4.com
``` `sqoop export --table site --connect jdbc:mysql://localhost/loudacre -- username training --password training --export-dir /site/ --update-mode allowinsert --update-key id` 因此,与其更新已经存在的id,不如再次插入重复的id(表示两个1,1代表www.one.com 1代表www.yahoo.com)
即使删除--update键,结果也是一样的。发生这种情况是因为表没有主键吗
我在clouderaquickstart vm中使用sqoop1.4.5
有什么帮助吗?
avwztpqn

avwztpqn1#

根据sqoop文件,
mysql将尝试插入新行,如果插入失败并出现重复唯一键错误,它将更新相应的行。
所以,不是吗 --update-key 列应该是主键或具有唯一索引。
在内部,sqoop将创建如下查询 INSERT INTO table (id,email) VALUES (1,www.one.com) ON DUPLICATE KEY UPDATE email=www.one.com 对于所有其他值,依此类推。

相关问题