首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sqoop中--append和--incremental append的区别

sqoop中--append和--incremental append的区别
EN

Stack Overflow用户
提问于 2016-08-03 05:46:43
回答 2查看 20.9K关注 0票数 3

使用--append和--incremental append将新行从RDBMS插入到HDFS中的现有数据集有什么区别吗?我使用--append和--where,以及--incremental append和--last-value。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-03 09:11:36

--append将数据追加到HDFS中的现有数据集

代码语言:javascript
复制
--append 
--where "dpt_id >10"

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

代码语言:javascript
复制
--incremental append
--check-column dpt_id
--last-value 10

而不是以下选项(追加新数据并更新现有数据- NO duplicates -注:这不会覆盖数据,但会更新或追加)

代码语言:javascript
复制
--incremental lastmodified
--check-column lastupdated
--last-value 20160802000000

Sqoop支持两种类型的incremental导入:appendlastmodified

可以使用--incremental参数指定要执行的增量导入的类型。

附加:

  • 在导入一个表时,您应该指定append模式,因为在该表中,不断添加的新行的行id值不断增加。
  • 您可以使用--check-column指定包含行id的列。如果检查列的值大于使用--last-value.

指定的值,则

  • Sqoop将导入这些行

lastmodified:

Sqoop支持的另一种表更新策略称为lastmodified模式。当源表的行可能被更新,并且每次这样的更新都会将最后修改的列的值设置为当前时间戳时,您应该使用此选项。check列包含的时间戳比使用imported.

  • When指定的时间戳晚的

  • 行是运行后续导入的--last-value,您应该以这种方式指定--last-value,以确保只导入新的或更新的数据。

  • 这是通过将增量导入创建为已保存的作业来自动处理的,这是执行定期增量导入的首选机制。

read more about incremental_imports here. . .

票数 8
EN

Stack Overflow用户

发布于 2017-03-13 16:12:40

指定

代码语言:javascript
复制
--incremental lastmodified

将生成update语句,因此,如果该行存在,将根据

代码语言:javascript
复制
--checkcolumn

在提到

代码语言:javascript
复制
--incremental append

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38731037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档