本文主要介紹如何在Hbase中進行全量導出MaxCompute操作。
注意事項
全量導出MaxCompute功能于2023年6月16日下線。2023年6月16日后購買的LTS將無法使用全量導出MaxCompute功能,2023年6月16日前購買的LTS仍可正常使用此功能。
前提條件
已購買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"}
。