本文主要介绍如何在Hbase中进行全量导出MaxCompute操作。
注意事项
全量导出MaxCompute功能于2023年6月16日下线。2023年6月16日后购买的LTS将无法使用全量导出MaxCompute功能,2023年6月16日前购买的LTS仍可正常使用此功能。
前提条件
已购买LTS数据迁移同步服务,配置LTS操作页面账户密码,并登录LTS操作页面。
已添加HBase集群数据源。
已添加MaxCompute数据源。
功能列表
导出HBase全量数据到MaxCompute。
支持指定rowkey、时间范围、支持指定对应列。
支持版本
自建HBase1.x、2.x。
EMR HBase。
标准版云HBase、增强版云HBase(集群版本)、Lindorm。
创建任务
进入LTS操作页面,在左侧导航栏选择Lindorm/HBase导出 > 历史数据导出MaxCompute。
在Lindorm/HBase全量归档MaxCompute页面单击创建任务。
选择源集群和目标集群,输入需要迁移的表,单击创建。
单击任务名,查看迁移进度。
迁移完成之后,登录到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"}
结果输出:
每一行代表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"}
。