SQOOP INCR加载

时间:2016-06-01 17:41:22

标签: sqoop

对于基于日期列的增量导入,我们如何在没有硬编码上一个日期的情况下提取更新的和新的记录(我们不能每次在生产中硬编码上一个日期) 例如 名称年龄更新日期 ABC 32 2016-01-01 DEF 22 2016-04-03 GHI 77 2016-02-02

假设我在先前加载时使用SQOOP加载了第一条记录2016-01-01的日期,现在我需要在SQOOP语句中加载硬编码任何日期值(2016-01-01)的下两条记录。

1 个答案:

答案 0 :(得分:0)

也许它有点晚了,但为了避免每次都要引入最后一个导入值,你可以利用内置的Sqoop Metastore并创建一个Sqoop job来实现你。

例如,您可以使用类似的内容创建一个使用表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

Here您可以查看更详细的示例。