如何将mysql的数据导入hbase

MYSQL 到 HBASE

bin/sqoop import 
 --connect jdbc:mysql://192.168.66.4:3306/networkmanagement \
 --username sendi \
 --password 1234 \
 --table alarm_result \
 --hbase-table sqoop_test \
 --column-family info \
 --hbase-row-key id \
 --hbase-create-table \
 -m 412345678910

–hbase-table 指定要导入的表名称
–column-family 指定列族
–hbase-row-key 指定哪个输入列用作行键
–hbase-create-table 创建缺少的HBase表

导出没有主键的表
可以使用两种方式:
* –split-by 指定切分的字段
* -m 1 : 设置只使用一个map进行数据迁移

过滤条件
–where “age>18” 匹配条件
–columns “name,age” 选择要导入的指定列
–query ‘select * from people where age>18 and $CONDITIONS’: sql语句查询的结果集不能 –table 一起使用
需要指定 –target-dir 路径

当数据库中字符为空时的处理
–null-non-string ‘0’ 当不是字符串的数据为空的时候,用 0 替换
–null-string ‘string’ 当字符串为空的时候,使用string 字符替换

提高传输速度
–direct 提高数据库到hadoop的传输速度
支持的数据库类型与版本:
* myslq 5.0 以上
* oracle 10.2.0 以上

问题扩展

Sqoop如何实现增量导入?

增量导入对应,首先需要知监控那一列,这列要从哪个值开始增量

check-column id 用来指定一些列
这些被指定的列的类型不能使任意字符类型,如char、varchar等类型都是不可以的,常用的是指定主键id. –check-column 可以去指定多个列
last-value 10 从哪个值开始增量
incremental 增量的模式
append id 是获取大于某一列的某个值。
lastmodified “2016-12-15 15:47:30” 获取某个时间后修改的所有数据
–append 附加模式
–merge-key id 合并模式
注意:增量导入不能与 –delete-target-dir 一起使用,还有必须指定增量的模式

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值