对于基于日期列的增量导入,我们如何提取更新的和新的记录而不硬编码前一个日期(我们不能每次在生产中硬编码前一个日期),例如名称年龄更新日期 32 2016-01-01 def 22 2016-04-03 ghi 77 2016-02-02假设我在前一次加载中使用sqoop加载了日期为2016-01-01的第一条记录,现在我需要在sqoop语句中加载下两条记录,而不硬编码任何日期值(2016-01-01)。
oxiaedzo1#
也许有点晚了,但是为了避免每次都要引入最后一个导入值,您可以使用内置的sqoop元存储并创建一个sqoop作业来完成这项工作。例如,您可以使用这样的方法来创建一个作业,该作业使用列检查新记录 dt 在table上 updates .
dt
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
在这里您可以查看更详细的示例。
1条答案
按热度按时间oxiaedzo1#
也许有点晚了,但是为了避免每次都要引入最后一个导入值,您可以使用内置的sqoop元存储并创建一个sqoop作业来完成这项工作。
例如,您可以使用这样的方法来创建一个作业,该作业使用列检查新记录
dt
在table上updates
.一旦创建,您就可以执行作业,并且每次它运行时,它都会导入从上一个开始的记录
dt
以前的进口记录:在这里您可以查看更详细的示例。