增量导入-避免重复行

smdnsysy  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(299)

考虑一个包含以下数据的表-

ID -1,2,3,8000
Name- A,B,C,D

我使用sqoop将数据导入hdfs
在mysql执行增量导入时,添加了2个id为4和5的新行,最后一个值为3,mode=append
导入的数据有两行8000 id,因为使用的条件是department\u id>3如何调整下面的命令以确保创建重复的行。

sqoop import 
    --connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" 
    --username=retail_dba 
    --password=cloudera 
    --table departments 
    --target-dir/user/cloudera/dep1
    --append
    --check-column "department_id"
    --incremental append
    --last-value 3
bybem2ql

bybem2ql1#

不能调整此命令。 --incremental append 用于附加新数据 --check-column > -last-value .
对于您的用例,您应该使用 --incremental lastmodified . --check-column 应为日期、时间、日期时间和时间戳数据类型。
如果您在之后添加了新记录 --last-value ,它将获取所有记录(新的或更新的)
示例命令:

sqoop import 
    --connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \
    --username=retail_dba \
    --password=cloudera \
    --table departments \
    --target-dir/user/cloudera/dep1 \
    --incremental lastmodified \
    --check-column last_update_date \
    --last-value "2015-10-20 06:00:01"

之后添加的所有记录 "2015-10-20 06:00:01" 将导入。
查看sqoop文档了解更多详细信息。

相关问题