全部产品
云市场

HBase历史数据导出ODPS

更新时间:2019-10-14 10:27:54

前提条件

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

版本

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

创建任务

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

参数说明

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

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

KV模式

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

结果输出:

1

每一行代表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

结果输出:

1

指定导出数据的范围

入参: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"}