このトピックでは、HBase から MaxCompute にデータを増分アーカイブする方法について説明します。
注意
MaxCompute 向けの増分アーカイブ機能は、2023 年 6 月 16 日に廃止されました。2023 年 6 月 16 日以降に購入した Lindorm Tunnel Service (LTS) インスタンスでは、この機能を使用できません。この日付より前に購入した LTS インスタンスでは、この機能を引き続き使用できます。
前提条件
-
Lindorm Tunnel Service (LTS) が有効化されていること。
-
HBase のデータソースが追加されていること。
-
MaxCompute のデータソースが追加されていること。
サポートされているバージョン
-
セルフマネージド HBase 1.x および 2.x。
-
E-MapReduce HBase。
-
ApsaraDB for HBase Standard Edition、ApsaraDB for HBase Performance-enhanced Edition、および Lindorm。
制限事項
-
増分アーカイブ機能は HBase ログに基づいています。そのため、バルクロードを使用してインポートされたデータはエクスポートできません。
ログライフサイクル
-
アーカイブを有効化した後、データが消費されない場合、ログはデフォルトで 48 時間保持されます。この期間を過ぎると、システムはサブスクリプションを自動的にキャンセルし、保持されているデータを削除します。
-
タスクが終了する前に LTS クラスターが解放された場合、または同期タスクが一時停止された場合、データ消費が失敗することがあります。
アーカイブタスクの送信
-
LTS コンソールで、左側のナビゲーションペインから [Lindorm/HBase Export] > [MaxCompute への増分アーカイブ] に移動します。
-
[タスクの作成] をクリックします。 [MaxCompute への増分アーカイブ] ページで必要なパラメーターを設定します。 [ソースクラスター] と [宛先クラスター] を選択し、[テーブルマッピング] を指定します。詳細については [Parameter Description] をクリックしてください。たとえば、
tableModeをwideTableに設定します。必要に応じて [Task Name] (任意) を指定し、[Advanced Configurations] を設定することもできます。タスクを送信する前に、ソースクラスターのログ保持期間 (hbase.master.logcleaner.ttl) がタスクの失敗を防ぐのに十分であることを確認してください。設定が完了したら、[Create] をクリックします。この例の設定では、HBase テーブルwal-testから MaxCompute にデータをリアルタイムでアーカイブします。-
アーカイブされる列は
cf1:a、cf1:b、cf1:c、cf1:dです。 -
mergeIntervalは、アーカイブ間隔をミリ秒単位で指定します。デフォルト値は86400000で、1 日です。 -
mergeStartAtは、yyyyMMddHHmmss形式でマージ操作の開始時刻を指定します。たとえば、値20190930000000は、2019 年 9 月 30 日 00:00:00 に操作が開始されることを示します。過去の時刻を指定することもできます。
-
-
アーカイブタスクを送信した後、タスク詳細ページでワークフローのステータスを監視できます。このページは 3 つのセクションで構成されます。[Table Creation Details] セクションには、テーブル作成のステータスが表示されます。ステータスが
SUCCEEDEDの場合、テーブルが作成されています。[Real-time Synchronization Channel] セクションには、チャネルのステータス (例:RUNNING)、同期レイテンシー、およびログ同期のチェックポイント (オフセット) が表示されます。[テーブルマージ] セクションには、マージタスクのステータス (例:RUNNING) と進捗 (例:47.50%) が表示されます。マージが完了したら、MaxCompute で最新のパーティションをクエリできます。 -
MaxCompute にログインして、アーカイブされたデータをクエリします。マージが完了したら、MaxCompute で
SELECT * FROM wal_test WHERE pt = 'xxxxxx'ステートメントを実行し、アーカイブされたデータをクエリします。結果には、ロウキー、cf1_string、cf1_int、cf1_long、cf1_boolean、cf1_short、cf1_bigdecimal、cf1_double、cf1_float、cf1_null、および pt などの列が含まれます。これにより、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} // マージ操作を無効にします。
テーブルマッピング式は、{{hbaseTable}}、{{odpsTable}}、および {{tbConf}} の 3 つの部分で構成されます。{{hbaseTable}} はソース HBase テーブルを指定します。{{odpsTable}} は任意で、宛先テーブル名を指定します。デフォルトの名前は HBase テーブル名と同じです。なお、MaxCompute は、テーブル名に含まれる . や - などのサポートされていない文字を _ に変換します。{{tbConf}} は、テーブルのアーカイブ動作を指定します。次の表に、{{tbConf}} でサポートされるパラメーターを示します。
|
パラメーター |
説明 |
例 |
|
cols |
エクスポートする列とそのデータ型を指定します。デフォルトでは、データは |
"cols": ["cf1:a", "cf1:b", "cf1:c"] |
|
mergeEnabled |
キー・バリュー (KV) テーブルをワイドテーブルに変換するかどうかを指定します。デフォルト値は |
"mergeEnabled": false |
|
mergeStartAt |
マージ操作の開始時刻です。形式は |
"mergeStartAt": "20191008000000" |
|
mergeInterval |
ミリ秒単位でマージ操作の間隔を指定します。デフォルト値は |
"mergeInterval": 86400000 |