-append和--incremental append的区别

ajsxfq5m  于 2021-06-03  发布在  Sqoop
关注(0)|答案(2)|浏览(429)

使用--append和--incremental append将rdbms中的新行插入到hdfs中的现有数据集中有什么区别吗?我正在使用--append with--where和--incremental append with--last value。

kmpatx3s

kmpatx3s1#

指定

--incremental lastmodified

将生成update语句,从而根据中提到的列更新行(如果存在)

--checkcolumn

在提到

--incremental append

将插入重复记录,因为它只会追加

lbsnaicq

lbsnaicq2#

--append 将数据附加到hdfs中的现有数据集

--append 
--where "dpt_id >10"

与:(仅将数据附加到现有数据集,也可以附加重复项-注意:这不会覆盖数据,但会附加):

--incremental append
--check-column dpt_id
--last-value 10

但不遵循以下选项(追加新数据并更新现有数据-无重复项-注意:这不会覆盖数据,但会更新或追加)

--incremental lastmodified
--check-column lastupdated
--last-value 20160802000000

sqoop支持两种类型的 incremental 进口: append 以及 lastmodified .
你可以用 --incremental 参数指定要执行的增量导入的类型。
附加:
您应该指定 append 当导入一个表时,在该表中不断添加新行并增加行id值。
指定包含行id的列 --check-column .
sqoop导入check列的值大于用指定值的行 --last-value .
上次修改时间:
sqoop支持的另一种表更新策略称为 lastmodified 模式。当源表的行可能被更新时,您应该使用这个选项,并且每次这样的更新都会将上次修改的列的值设置为当前时间戳。
check列保存的时间戳比用指定的时间戳更新的行 --last-value 是进口的。
运行后续导入时,应指定 --last-value 这样可以确保只导入新的或更新的数据。
这是通过将增量导入创建为保存的作业来自动处理的,这是执行定期增量导入的首选机制。
在此处阅读有关增量导入的更多信息。

相关问题