本文主要介绍如何在Hbase中进行增量归档MaxCompute。
注意事项
增量归档MaxCompute功能于2023年6月16日下线。2023年6月16日后购买的LTS将无法使用增量归档MaxCompute功能,2023年6月16日前购买的LTS仍可正常使用此功能。
前提条件
已开通LTS。
已添加HBase数据源。
已添加MaxCompute数据源。
支持版本
自建HBase1.x、2.x。
EMR HBase。
标准版云HBase、增强版云HBase(集群版本)、Lindorm。
限制
实时数据归档基于HBase的日志,因此不能导出bulkload的数据。
日志生命周期
开启归档后,如果不消费数据,默认日志会保留48小时,超时后订阅关系自动取消,保留的数据自动删除
什么场景会导致“不消费数据”:没有终止任务的前提下直接释放LTS集群;同步任务暂停;
提交归档任务
进入LTS操作页面,在左侧导航栏选择Lindorm/HBase导出 > 增量数据导出MaxCompute。
单击创建任务, 进入创建页面,选择对应的HBase源集群和MaxCompute目标集群, 指定需要导出的HBase表。上图对HBase表wal-test进行实时数据归档到MaxCompute
归档的列包括cf1:a、cf1:b、cf1:c、cf1:d四列。
mergeInterval 表示的是归档的间隔(单位毫秒), 默认指定 86400000 (一天)。
mergeStartAt(格式为yyyyMMddHHmmss)表示从2019年9月30号0点整作为起始时间(可以指定一个过去的值) 。
查看表归档进度。实时同步通道展示的是日志同步的延迟、点位,Table Merge展现的是表Merge的任务,Merge完成即可在MaxCompute上查询最新分区的表。
登录MaxCompute查询表数据。
参数说明
导出表格式如下:
hbaseTable/odpsTable {"cols": ["cf1:a|string", "cf1:b|int", "cf1:c|long", "cf1:d|short","cf1:e|decimal", "cf1:f|double","cf1:g|float","cf1:h|boolean","cf1:i"], "mergeInterval": 86400000, "mergeStartAt": "20191008100547"}
hbaseTable/odpsTable {"cols": ["cf1:a", "cf1:b", "cf1:c"], "mergeStartAt": "20191008000000"}
hbaseTable {"mergeEnabled": false} // 不进行merge操作
导出的表包含三部分:{{hbaseTable}},{{odpsTable}} ,{{tbConf}}。 {{hbaseTable}}:指定HBase表。 {{odpsTable}}:可选,指定目标表名。默认情况和HBase相同 (ODPS表名不支持包含”.-“等字符,统一转化成”_”)。 {{tbConf}}:指定表的归档行为。 {{tbConf}}支持的参数如下表:
参数 | 说明 | 例子 |
cols | 指定需要导出的列及列类型。默认转化格式为HexString。 | “cols”: [“cf1:a”, “cf1:b”, “cf1:c”] |
mergeEnabled | 是否需要进行KV表转化成宽表, 默认为true。 | “mergeEnabled”: false |
mergeStartAt | merge的起始时间,可以指定一个过去的时间,格式是yyyyMMddHHmmss。 | “mergeStartAt”: “20191008000000” |
mergeInterval | merge的时间间隔,单位毫秒,默认是一天,即按天归档。 | “mergeInterval”: 86400000 |