使用--append和--incremental append将新行从RDBMS插入到HDFS中的现有数据集有什么区别吗?我使用--append和--where,以及--incremental append和--last-value。
发布于 2016-08-03 09:11:36
--append将数据追加到HDFS中的现有数据集
--append
--where "dpt_id >10"与:(仅将数据追加到现有数据集,也可以追加重复的-注:这不会覆盖数据,但会追加):
--incremental append
--check-column dpt_id
--last-value 10而不是以下选项(追加新数据并更新现有数据- NO duplicates -注:这不会覆盖数据,但会更新或追加)
--incremental lastmodified
--check-column lastupdated
--last-value 20160802000000Sqoop支持两种类型的incremental导入:append和lastmodified。
可以使用--incremental参数指定要执行的增量导入的类型。
附加:
append模式,因为在该表中,不断添加的新行的行id值不断增加。--check-column指定包含行id的列。如果检查列的值大于使用--last-value.指定的值,则
lastmodified:
Sqoop支持的另一种表更新策略称为lastmodified模式。当源表的行可能被更新,并且每次这样的更新都会将最后修改的列的值设置为当前时间戳时,您应该使用此选项。check列包含的时间戳比使用imported.
--last-value,您应该以这种方式指定--last-value,以确保只导入新的或更新的数据。
发布于 2017-03-13 16:12:40
指定
--incremental lastmodified将生成update语句,因此,如果该行存在,将根据
--checkcolumn在提到
--incremental append将插入重复的记录,因为它只会追加
https://stackoverflow.com/questions/38731037
复制相似问题