嗨,我通过sqoop连接器从mysql加载了一个数据到hdfs。现在,如果现有数据之间的行得到更新,是否有任何查询来更新sqoop中现有行的数据值。我知道增量更新吗?增量更新中是否也会更新现有行?我是sqoop的新手?
gcuhipw91#
是的,但是你应该用 lastmodified 执行增量导入时的模式。根据文件:sqoop支持的另一种表更新策略称为lastmodified模式。当源表的行可能被更新时,您应该使用这个选项,并且每次这样的更新都会将上次修改的列的值设置为当前时间戳。如果check列所保存的时间戳比用--last值指定的时间戳更近,则导入这些行。增量导入结束时,应指定为后续导入的--last值的值将打印到屏幕上。在运行后续导入时,应该以这种方式指定--last值,以确保只导入新的或更新的数据。这是通过将增量导入创建为保存的作业来自动处理的,这是执行定期增量导入的首选机制。有关详细信息,请参阅本文档后面有关已保存作业的部分。请记住,此模式需要一个包含日期值的列(例如 date , time , datetime 以及 timestamp ).这个答案显示了使用 merge-key .
lastmodified
date
time
datetime
timestamp
merge-key
1条答案
按热度按时间gcuhipw91#
是的,但是你应该用
lastmodified
执行增量导入时的模式。根据文件:sqoop支持的另一种表更新策略称为lastmodified模式。当源表的行可能被更新时,您应该使用这个选项,并且每次这样的更新都会将上次修改的列的值设置为当前时间戳。如果check列所保存的时间戳比用--last值指定的时间戳更近,则导入这些行。
增量导入结束时,应指定为后续导入的--last值的值将打印到屏幕上。在运行后续导入时,应该以这种方式指定--last值,以确保只导入新的或更新的数据。这是通过将增量导入创建为保存的作业来自动处理的,这是执行定期增量导入的首选机制。有关详细信息,请参阅本文档后面有关已保存作业的部分。
请记住,此模式需要一个包含日期值的列(例如
date
,time
,datetime
以及timestamp
).这个答案显示了使用
merge-key
.