我们之前导入的都是全量导入,一次性全部导入,但是实际开发并不是这样,例如web端进行用户注册,mysql就增加了一条数据,但是HDFS中的数据并没有进行更新,但是又再全部导入一次又完全没有必要。

所以,sqoop提供了增量导入的方法。

1、数据准备:

2、将其先用全量导入到HDFS中去

3、先在mysql中添加一条数据,在使用命令进行追加

 #指定字段的取值范围,增量到数据(指的是Mysql增加了一条或多条数据,追加到HDFS中去,
如果想追加到hive本来的数据中去就把路径换成hive的路径)
# 适用于表不断的有新数据插入 sqoop import \
--connect jdbc:mysql://master:3306/student \
--username root \
--password \
--table student_zeng \
--target-dir /user/hive/warehouse/sqlhivetest.db/student_zeng/ \
--split-by id \
-m \
--fields-terminated-by '\t' \
--incremental append \
--check-column id \
--last-value

4、根据时间进行大量追加(不去重)

 追加
sqoop import \
--connect jdbc:mysql://master:3306/student \
--username root \
--password \
--target-dir /user/hive/warehouse/sqlhivetest.db/student_zeng/ \
--table student_zeng \
--fields-terminated-by '\t' \
--check-column last_mod \
--incremental lastmodified \
--last-value "2019-12-19 20:57:16" \
-m \
--append

结果:但是我们发现有两个重复的字段

5、往往开发中需要进行去重操作:sqoop提供了一个方法进行去重,内部是先开一个map任务将数据导入进来,然后再开一个map任务根据指定的字段进行合并去重

#根据业务可能需要去重  -merge-key 就是做这个事

sqoop import \
--connect jdbc:mysql://master:3306/student \
--username root \
--password \
--target-dir /user/hive/warehouse/sqlhivetest.db/student_zeng/ \
--table student_zeng \
--fields-terminated-by '\t' \
--check-column last_mod \
--incremental lastmodified \
--last-value "2019-12-19 22:00:09" \
-m \
-merge-key id

结果:

 之前有重复的也进行合并去重操作,最后生成一个结果。

最新文章

  1. redis安装记录
  2. Xamarin的不归路-连接MAC失败
  3. 谈谈对AOP的理解
  4. js中window的属性
  5. svn转移版本库
  6. CNAPS Code 查询(招商银行)
  7. phpstom 实用laravel 需要附加的 命令
  8. delphi SPCOMM 接收数据不完整!该如何解决
  9. Spring 3.0以后版本的定时任务
  10. Java [Leetcode 260]Single Number III
  11. MySQL基础学习之函数
  12. LFS,编译自己的Linux系统 - 完成准备工作
  13. J - A + B Problem II(第二季水)
  14. (转)SqlServer基础之(触发器)(清晰易懂)
  15. Appium-desktop安装与使用
  16. 完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存
  17. Scrapy 框架 手动发送请求 POST 请求的发送
  18. 抛异常 throw的注意事项
  19. oracle之 反向键索引
  20. 【BZOJ】【3697】采药人的路径&【3127】【USACO2013 Open】Yin and Yang

热门文章

  1. 高级UI-画笔Paint
  2. SpringBoot2+Druid+JdbcTemplate+MySql实现增删改查
  3. 【LeetCode】最接近的三数之和【排序,固定k1,二分寻找k2和k3】
  4. [IOT] - Raspbian Buster 设置固定 IP
  5. Educational Codeforces Round 71
  6. python使用matplotlib在一个图形中绘制多个子图以及一个子图中绘制多条动态折线问题
  7. DS 图解归并排序
  8. iOS核心动画(专用图层篇)
  9. ASP.NET Core 入门(2)(WebApi接口请求日志 Request和Response)
  10. C# vb .net实现对比度调整特效滤镜效果