增量导入 - 避免重复行

时间:2016-10-12 16:15:37

标签: sqoop

考虑具有以下数据的表部门 -

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

我使用sqoop

将数据导入HDFS

在MySQL中添加了2个ID为4和5的新行 执行增量导入,最后一个值为3,mode = append

导入的数据有两行8000 ID,因为使用的条件是department_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

1 个答案:

答案 0 :(得分:0)

您无法调整此命令。

--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 documentation以获取更多详细信息。