前提条件

  1. 购买LTS数据迁移同步服务,配置LTS操作页面账户密码,并登录LTS操作页面。
  2. 打通LTS和HBase迁移集群的网络。
  3. 添加HBase集群数据源。
  4. 添加ODPS数据源。

版本

  • 自建HBase1.x、2.x
  • EMR HBase
  • 标准版云HBase、增强版云HBase(集群版本)

创建任务

  1. 进入LTS操作页面,点击任务管理->HBase历史数据导出ODPSodps历史任务
  2. 选择源HBase集群和目标ODPS集群,输入需要迁移的表。提交详情页
  3. 查看迁移进度, 当所有的任务都完成之后。迁移进度
  4. 迁移完成之后,登录到ODPS便可以查询数据。结果

参数说明

hbaseTable/odpsTable {"tableMode": "wideTable", "cols":["f1:a", "f1:b", "f1:c"]}
hbaseTable/odpsTable {"tableMode": "wideTable", "cols":["f1:a|string", "f1:b|boolean"]}
hbaseTable/odpsTable {"tableMode": "wideTable", "cols":["f1:a|string", "f1:b|boolean"], "startTs": "20190101000000", "endTs": "20200101000000", "startKey": "a", "endKey": "z"}
hbaseTable/odpsTable {"tableMode": "KVTable"}

HBase数据导出到ODPS,支持两种模式:KV模式、宽表模式。

  • KV模式

    入参:tablexxx {"tableMode": "KVTable"}

    结果输出:kvmode

    每一行代表HBase中的一个KV,rowkey表示的是HBase表KV的rowkey, version代表是KV的版本,op 代表是KV的类型(Put、DeleteFamily、DeleteColumn), family代表的是列族,qualifier代表的是列名,value代表是KV的具体value(转化成HexString的格式)。

  • 宽表模式

    入参:hbaseTable/odpsTable {"tableMode": "wideTable", "cols":["cf1:string|string", "cf1:int|int", "cf1:double|double"]}

    宽表模式需要指定导出的列 ,例如 “cols”:[“f1:a”, “f1:b”, “f1:c”] , 列值默认是转化成HexString的格式。可以指定列的类型,例如”cols”:[“f1:a|string”, “f1:b|boolean”, “f1:c|int”]。列支持的类型:string、int、long、short、decimal、double、float、boolean,默认类型 hex, 将bytes数组转化为HexString。

    结果输出:宽表
  • 指定导出数据的范围

    入参:table1 {"startKey": "xxx", "endKey": "zzz", "startTs": "20191001153000", "endTs": "20191001233000"}

    HBase导出ODPS不管是KV模式还是宽表模式,导出支持指定任意startKey、endKey、startTs、endTs参数,可以控制导出的时间范围和rowkey的区间。

  • 指定导出到不同ODPS表

    HBase导出ODPS支持HBase表和ODPS表不同表名, 默认情况和HBase表名相同(hbase表名中的’-‘、’.’ 会被替换成’_’)例如:hbaseTable/odpsTable {"tableMode": "KVTable"}