对于基于日期列的增量导入,我们如何在没有硬编码上一个日期的情况下提取更新的和新的记录(我们不能每次在生产中硬编码上一个日期) 例如 名称年龄更新日期 ABC 32 2016-01-01 DEF 22 2016-04-03 GHI 77 2016-02-02
假设我在先前加载时使用SQOOP加载了第一条记录2016-01-01的日期,现在我需要在SQOOP语句中加载硬编码任何日期值(2016-01-01)的下两条记录。
答案 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您可以查看更详细的示例。