本文主要介紹如何在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 |