sqoop增量加载

tjvv9vkg  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(420)

对于基于日期列的增量导入,我们如何提取更新的和新的记录而不硬编码前一个日期(我们不能每次在生产中硬编码前一个日期),例如名称年龄更新日期 32 2016-01-01 def 22 2016-04-03 ghi 77 2016-02-02
假设我在前一次加载中使用sqoop加载了日期为2016-01-01的第一条记录,现在我需要在sqoop语句中加载下两条记录,而不硬编码任何日期值(2016-01-01)。

oxiaedzo

oxiaedzo1#

也许有点晚了,但是为了避免每次都要引入最后一个导入值,您可以使用内置的sqoop元存储并创建一个sqoop作业来完成这项工作。
例如,您可以使用这样的方法来创建一个作业,该作业使用列检查新记录 dt 在table上 updates .

sqoop job 
   --create update_job 
   --import 
   --connect jdbc:mysql://whatever/database
   --username foo
   --password bar 
   --table updates 
   --incremental lastmodified 
   --check-column dt

一旦创建,您就可以执行作业,并且每次它运行时,它都会导入从上一个开始的记录 dt 以前的进口记录:

sqoop job --exec update_job

在这里您可以查看更详细的示例。

相关问题