Sqoop
增量导入
注:若需转载,请注明出处!
Sqoop导出视频请参考:https://edu.hellobi.com/course/93/lessons (Sqoop增量导入部分)
1、核心参数
–check-column,用来指定一些列,这些列在导入时用来检查做决定数据是否要被作为增量数据,在一般关系型数据库中,都存在类似Last_Mod_Date的字段或主键。注意:这些被检查的列的类型不能是任意字符类型,例如Char,VARCHAR…(即字符类型不能作为增量标识字段)
–incremental,用来指定增量导入的模式(Mode),append和lastmodified
–last-value,指定上一次导入中检查列指定字段最大值
2、增量模式(Mode)
1、append,在导入的新数据ID值是连续时采用,对数据进行附加
2、lastmodified,在源表中有数据更新的时候使用,检查列就必须是一个时间戳或日期类型的字段,更新完之后,last-value会被设置为执行增量导入时的当前系统时间
1、 Append
加不加–last-value的区别在于:数据是否冗余,如果不加,则会导入源表中的所有数据导致数据冗余。
2、 Lastmodified
当使用–incremental lastmodified模式进行导入且导入目录已存在时,需要使用–merge-key或–append
导入>=last-value的值。
3、示例
sqoop import --connect jdbc:mysql://centos:3306/sqooptest --table bigdata --username root --password 123456 --check-column last_mod_ts --incremental lastmodified --last-value "2016-10-03 22:39:43" --merge-key class_id -m 1