sqoop 从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 4
  • –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 以上

增量导入

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

  • 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 一起使用,还有必须指定增量的模式

你可能感兴趣的:(java,开发总结,大数据,sqoop)