本文主要介紹如何在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:指定表的歸檔行為,支持的參數如下表:
參數 | 說明 | 例子 |
cols | 指定需要導出的列及列類型。默認轉化格式為HexString。 | “cols”: [“cf1:a”, “cf1:b”, “cf1:c”] |
mergeEnabled | 是否需要進行KV表轉化成寬表, 默認為true。 | “mergeEnabled”: false |
mergeStartAt | merge的起始時間,可以指定一個過去的時間,格式是yyyyMMddHHmmss。 | “mergeStartAt”: “20191008000000” |
mergeInterval | merge的時間間隔,單位毫秒,默認是一天,即按天歸檔。 | “mergeInterval”: 86400000 |