增量归档MaxCompute

更新时间:
复制 MD 格式

本文主要介绍如何在Hbase中进行增量归档MaxCompute。

注意事项

增量归档MaxCompute功能于2023616日下线。2023616日后购买的LTS将无法使用增量归档MaxCompute功能,2023616日前购买的LTS仍可正常使用此功能。

前提条件

  1. 已开通LTS。

  2. 已添加HBase数据源。

  3. 已添加MaxCompute数据源。

支持版本

  • 自建HBase1.x、2.x。

  • EMR HBase。

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

限制

  • 实时数据归档基于HBase的日志,因此不能导出bulkload的数据。

日志生命周期

  • 开启归档后,如果不消费数据,默认日志会保留48小时,超时后订阅关系自动取消,保留的数据自动删除

  • 什么场景会导致“不消费数据”:没有终止任务的前提下直接释放LTS集群;同步任务暂停;

提交归档任务

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

  2. 单击创建任务, 进入创建页面,选择对应的HBase源集群和MaxCompute目标集群, 指定需要导出的HBase表。在 Lindorm/HBase增量归档MaxCompute 页面,填写以下配置项:任务名(可不填)、源集群目标集群表映射(可单击参数说明查看详情,其中 tableMode 可设置为 wideTable)及高级配置。请注意源集群下方的红色提示:实时同步任务提交前请确认源集群日志保留时间(hbase.master.logcleaner.ttl),防止日志保留时间过短导致任务失败。配置完成后单击创建。以上配置示例对HBasewal-test进行实时数据归档到MaxCompute

    • 归档的列包括cf1:a、cf1:b、cf1:c、cf1:d四列。

    • mergeInterval 表示的是归档的间隔(单位毫秒), 默认指定 86400000 (一天)。

    • mergeStartAt(格式为yyyyMMddHHmmss)表示从20199300点整作为起始时间(可以指定一个过去的值) 。

  3. 查看表归档进度。实时同步通道展示的是日志同步的延迟、点位,Table Merge展现的是表Merge的任务,Merge完成即可在MaxCompute上查询最新分区的表。提交归档任务后,可在归档任务详情页查看工作流执行状态,页面包含三部分信息:建表详情显示建表任务状态为 SUCCEEDED,表示建表已完成;实时同步通道显示通道状态为 RUNNING,同步时延为 4520 ms;Table Merge显示合并任务运行状态为 RUNNING,任务进度为 47.50%。

  4. 登录MaxCompute查询表数据。Merge 完成后,在 MaxCompute 中执行 SELECT * FROM wal_test WHERE pt = 'xxxxxx' 查询归档数据,返回结果包含 rowkeycf1_stringcf1_longcf1_booleancf1_shortcf1_bigdecimalcf1_doublecf1_floatcf1_nullpt 等列,确认 HBase 数据已成功同步至 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