Open summerflowerying opened 2 years ago
场景如下 : 从mysql增量导入到Hive中, 是否更新取决于表中的时间字段
步骤一 : 创建Hive表
使用Sqoop命令 --create-hive-table创建Hive表 sqoop import \ --connect jdbc:mysql://hadoop101:3306/workflow \ --username userName\ --password pwd \ --table people_access_log2 \ --hive-import \ --create-hive-table \ --fields-terminated-by ',' \ --hive-table default.project
步骤二 : 测试增量更新
根据时间字段(access_time ), 实现增量更新 sqoop import \ --connect jdbc:mysql://hadoop101:3306/workflow \ --username userName \ --password pwd \ --table project \ --target-dir /user/hive/warehouse/project\ -m 1 \ --check-column access_time \ --incremental lastmodified \ --last-value "2022-01-04 09:48:20" \ --merge-key id
why : 由于增量更新是依据--last-value的值, 所以sqoop job会自动保存一份上次执行时--check-column字段的最大值, 最终不用我们每次执行任务时手动修改--last-value的值(推荐使用)
sqoop job \ --create myjob \ -- import \ --connect jdbc:mysql://hadoop101:3306/workflow \ --username userName \ --password pwd \ --table project\ --target-dir /user/hive/warehouse/project\ -m 1 \ --check-column access_time \ --incremental lastmodified \ --last-value "2022-01-04 09:48:20" \ --merge-key id
参考
Import使用
场景如下 : 从mysql增量导入到Hive中, 是否更新取决于表中的时间字段
步骤一 : 创建Hive表
步骤二 : 测试增量更新
Sqoop job 的使用
why : 由于增量更新是依据--last-value的值, 所以sqoop job会自动保存一份上次执行时--check-column字段的最大值, 最终不用我们每次执行任务时手动修改--last-value的值(推荐使用)
参考