全量导出MaxCompute

本文主要介绍如何在Hbase中进行全量导出MaxCompute操作。

注意事项

全量导出MaxCompute功能于2023年6月16日下线。2023年6月16日后购买的LTS将无法使用全量导出MaxCompute功能,2023年6月16日前购买的LTS仍可正常使用此功能。

前提条件

  • 已购买LTS数据迁移同步服务,配置LTS操作页面账户密码,并登录LTS操作页面,具体操作请参见开通并登录LTS

  • 已添加HBase集群数据源。

  • 已添加MaxCompute数据源。

功能列表

  • 导出HBase全量数据到MaxCompute。

  • 支持指定Rowkey、时间范围、支持指定对应列。

支持版本

  • 自建HBase1.x、2.x。

  • EMR HBase。

  • 标准版云HBase、增强版云HBase(集群版本)、Lindorm。

创建任务

  1. 进入LTS操作页面,在左侧导航栏选择Lindorm/HBase导出 > 历史数据导出MaxCompute

  2. Lindorm/HBase全量归档MaxCompute页面单击创建任务。

  3. 选择源集群和目标集群,输入需要迁移的表,单击创建

    全量归档MaxCompute
  4. 单击任务名,查看迁移进度。

  5. 迁移完成之后,登录到MaxCompute便可以查询数据。

参数说明

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数据导出到MaxCompute,支持两种模式:KV模式、宽表模式。

KV模式

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

结果输出:MaxCompute

说明
  • 每一行代表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导出MaxCompute不管是KV模式还是宽表模式,导出支持使用startKey、endKey来指定主键区间,以及使用startTs、endTs参数来指定时间区间。

指定导出到不同MaxCompute表

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