sqoop要实现增量导入参数到hive或者hdfs
1.需要在mysql中创建可以自动更新的字段,当插入数据时和更新数据时改字段自动更新,如图中update_time,当数据插入时会记录更新为插入时间,数据更新时会更新为数据更新时的时间
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '数据更新时间'
2.数据导入需要指定3个关键的参数
sqoop import -Dhadoop.security.credential.provider.path=jceks://hdfs/user/password/xiaopengfei --connect "jdbc:mysql://172.16.12.210:3306/CLTransportBusinessDB2018?tinyInt1isBit=false&useUnicode=true&characterEncoding=utf-8" --username 517bigdata --password-alias xiaopengfei --table SaleOrderInfo201804 --check-column ModifyTime --incremental append --last-value "2018-04-01 00:00:10" --split-by SaleOrderID -m 2 --escaped-by '\' --null-string '\N' --null-non-string '\N' --fields-terminated-by '^' --target-dir "/user/hive/travelfirst/cltransportbusiness/saleorderinfo/month=201804"
说明:
--check-column 指定根据那个字段增量导入 ModifyTime
--incremental 指定增量导入的 方式 append
--last-value 指定上次增量导入时的值 如:"2018-04-01 00:00:10"