Sqoop1.4.4使用增量导入模式将MySQL数据库中数据导入到HDFS中

问题导读:

       1、什么是增量导入?

       2、--check-column、--incremental和--last-value三个参数的作用?

       3、使用增量导入,需要注意什么?

一、增量导入模式简介

       Sqoop提供将新数据导入,而已经导入的数据不再执行导入操作,即增量导入操作。使用以下参数:

--check-column (col)    检查指定的列,根据此列判断哪些记录是新数据且需要导入的,列不能是字符相关类型(CHAR/NCHAR/VARCHAR/VARNCHAR/ LONGVARCHAR/LONGNVARCHAR)
--incremental (mode)    指定增量模式,mode包含两种方式:append和lastmodified
      append:       当表中的记录是以id持续增加导入新的记录的时候,可以使用append模式,--check-column id 用于检查id
      lastmodified: 表有时候也会执行更新操作,此时可以使用lastmodified导入
--last-value (value):  指定某个值,将大于该值的检查列记录导入,以确定仅将新的或者更新后的记录导入新的文件系统

        一般情况下, --check-column是数据库中的关键字,以此来判断哪些列是新增数据--incremental 增量导入模式分为两种:append和lastmodified--last-value 后面接的值一般是上一次导入操作后指定列的最大值,便于Sqoop将此最大值后新增的值导入。

二、先将MySQL数据库表中现有数据导入到HDFS中

        此部分内容此处不详细介绍,可以参考我的另外一篇文章:使用Sqoop1.4.4将MySQL数据库表中数据导入到HDFS中

[hadoopUser@secondmgt ~]$ sqoop import --connect jdbc:mysql://secondmgt:3306/spice --username hive --password hive --table users --target-dir /output/incrimport/
       查看结果:

[hadoopUser@secondmgt ~]$ hadoop fs -cat /output/incrimport/*
56,hua,hanyun,男,开通,2013-12-02,0,1
58,feng,123456,男,开通,2013-11-22,0,0
59,test,123456,男,开通,2014-03-05,58,0
60,user1,123456,男,开通,2014-06-26,66,0
61,user2,123,男,开通,2013-12-13,56,0
62,user3,123456,男,开通,2013-12-14,0,0
64,kai.zhou,123456,?,??,2014-03-05,65,0
65,test1,111,男,未开通,null,0,0
66,test2,111,男,未开通,null,0,0
67,test3,113,男,未开通,null,0,0
三、新插入三条记录到MySQL数据库表中

mysql> select * from users;
+----+-------------+----------+-----+-----------+------------+-------+------+
| id | username    | password | sex | content   | datetime   | vm_id | isad |
+----+-------------+----------+-----+-----------+------------+-------+------+
| 56 | hua         | hanyun   | 男  | 开通      | 2013-12-02 |     0 |    1 |
| 58 | feng        | 123456   | 男  | 开通      | 2013-11-22 |     0 |    0 |
| 59 | test        | 123456   | 男  | 开通      | 2014-03-05 |    58 |    0 |
| 60 | user1       | 123456   | 男  | 开通      | 2014-06-26 |    66 |    0 |
| 61 | user2       | 123      | 男  | 开通  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值