全量导入:
1 2 3 4 5 6 7 8 9 10 11
| sqoop import \ --connect jdbc:mysql://master:3306/sqoop_db \ --username root \ --password 123456 \ --table city \ --num-mappers 1 \ --delete-target-dir \ --hive-import \ --fields-terminated-by "," \ --hive-overwrite \ --hive-table hive的库.hive的表
|
增量导入:
1.append方式
2.lastmodified方式,必须要加–append(最加)或者–merge-key(合并,一般天主键)

这个是第一种方式:incremental append
1 2 3 4 5 6 7 8 9 10 11
| sqoop import \ --connect jdbc:mysql://master:3306 \ --username root \ --password 123456 \ --num-mappers 4 \
--target-dir hdfs路径 \ 这个路径是表的路径可以在hive中show create table city;就可以看到hdfs的位置了 --fields-terminated-by "," \ --incremental append \ --check-column id \ --last-value 1 这个就是看你的数字哪一行,如果是1那就从2开始增量数据
|
参数解释:
1)incremental : append或lastmodified,使用lastmodified方式导入数据要指定增量数据是要 –append(追加)还是要 –merge-key(合并)
2)check-column<字段>: 作为增量导入判断的列名
3)last-value val : 指定某一个值,用于标记增量导入的位置,这个值的数据不会被导入列表中,只用于标记当前表中最后的值。
第二种导入方式–incremental lastmodified –append(例子:列入按照时间进行增量导入)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| sqoop import \ --connect jdbc:mysql://master:3306 \ --username root \ --password 123456 \ --table city \ --num-mappers 4 \ --target-dir hdfs路径 \ --fields-terminated-by "," \ --incremental lastmodified \ --check-column last_time \ --last-value '2020-10-10 13:00:00' \ --append
--注意:last-value的设置把包括2020-10-10 13:00:00 时间的数据做增量导入
|
第三种导入方式–incremental lastmodified –append (进行合并的)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| sqoop import \ --connect jdbc:mysql://master:3306 \ --username root \ --password 123456 \ --table city \ --num-mappers 4 \ --target-dir hdfs路径 \ --fields-terminated-by "," \ --incremental lastmodified \ --check-column last_time \ --last-value '2020-10-10 13:00:00' \ --merge-key id
--incremental lastmodified --merge-key的作用:修改过得数据和新增的数据(前提是满足last-value的条件)都会导入尽力啊,并且重复的数据(不需要满足last-value的条件)都会进行合并
|