-append和--incremental附加在sqoop中的区别

Mid*_*nny 2 sqoop

使用--append和--incremental append将新行从RDBMS插入HDFS中的现有数据集之间有什么区别吗?我正在使用--append以及--where和--incremental追加--last-value.

Ron*_*tel 6

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

--append 
--where "dpt_id >10"
Run Code Online (Sandbox Code Playgroud)

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

--incremental append
--check-column dpt_id
--last-value 10
Run Code Online (Sandbox Code Playgroud)

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

--incremental lastmodified
--check-column lastupdated
--last-value 20160802000000
Run Code Online (Sandbox Code Playgroud)

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

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

附加:

  • 您应该append在导入表时指定模式,其中随着行ID值的增加不断添加新行.
  • 您指定包含行的id的列--check-column.
  • Sqoop导入检查列的值大于指定值的行--last-value.

最后修改:

  • Sqoop支持的备用表更新策略称为lastmodified模式.您应该在更新源表的行时使用此方法,并且每次此类更新都会将最后修改的列的值设置为当前时间戳.
  • --last-value将导入检查列包含比指定时间戳更新的时间戳的行.
  • 运行后续导入时,应--last-value以此方式指定以确保仅导入新数据或更新数据.
  • 这是通过将增量导入创建为已保存作业来自动处理的,这是执行定期增量导入的首选机制.

在这里阅读有关incremental_imports的更多信息...