在sqoop增量导入--append模式中,我们介绍了sqoop的增量导入的常用参数以及append增量导入模式,本文章将讲述sqoop的辣条modified增量导入模式,多常用参数不了解的请参考sqoop--append增量导入模式.
sqoop增量导入--lastmodified模式
我们有一张表user数据如下:
id | name | age | time_mod |
1 | 张三 | 18 | 2020-05-05 22:41:00 |
2 | 李四 | 20 | 2020-05-05 22:41:03 |
首先,我们使用全量导入将数据导入到hdfs中
bin/sqoop import \
--connect jdbc:mysql://localhost:3306:/test \
--username root --password 123456 \
--table user --m 1 \
--target-dir /sqoop/test
之后,我们修改表中的数据后,time_mod也将发生改变,表中的数据改为:
id | name | age | time_mod |
1 | 张三 | 20 | 2020-05-05 22:43:40 |
2 | 李四 | 20 | 2020-05-05 22:41:03 |
3 | 王五 | 22 | 2020-05-05 22:43:55 |
注意,该表增加的一条记录,并且修改了id为1的记录,id为1 的记录的time_mod也发生了改变,这时候,使用lastmodified进行增量导入
bin/sqoop import \
--connect jdbc:mysql://localhost:3306/test \
--username root --password 123456 \
--table user --m 1 \
--target-dir /sqoop/test \
--check-column time_mod \
--incremental lastmodified \
--last-value '2020-05-05 22:42:00 \
--append
这时候会在hdfs的/sqoop/test文件夹下生成一个新的文件,文件中会有两条记录,一条是新增的记录,另一条是修改后的数据,在全量导入生成的文件中有修改前的数据
注意:这个时候的--append和append模式不同,此处的append代表lastmodified模式下的append类型,可选值有append | merge-key
如果将上面的--append换成--merge-key id ,hdfs上不会生成新文件,而是生成一个经过reduce合并的总文件,文件里是修改后的老数据和新增数据,这里是根据id进行合并