Lindorm Tunnel Service (LTS) は、フルデータと増分データを同期できるデータ同期機能を提供します。このトピックでは、この機能のシナリオ、機能、利点、および制限について説明します。また、データ同期タスクの作成などの関連操作についても説明します。
シナリオ
メジャーバージョンアップグレード。たとえば、ApsaraDB for HBase クラスタのメジャーバージョンを V1.x から V2.x にアップグレードします。
リージョン間のデータ移行。たとえば、中国 (青島) リージョンのデータセンターから中国 (北京) リージョンのデータセンターにデータを移行します。
クロスアカウント移行。たとえば、異なるアカウント間でデータを移行します。
クラスタ仕様のアップグレード。たとえば、クラスタの仕様を 4 コア 8 GB メモリから 8 コア 16 GB メモリにアップグレードします。
ワークロードの分離。たとえば、一部のワークロードを新しいクラスタに移行します。
機能
この機能を使用すると、HBase 094、HBase 098、HBase V1.x、HBase V2.x、および Lindorm の 2 つのバージョン間でサービスを停止することなくデータを移行できます。
この機能を使用すると、テーブルスキーマの移行、データのリアルタイム同期、およびフルデータの移行を行うことができます。
この機能を使用すると、データベース、名前空間、およびテーブルに基づいてデータを移行できます。
この機能を使用すると、テーブル内のデータを移行するときにテーブルの名前を変更できます。
この機能を使用すると、データの移行時に時間範囲、行キー範囲、および列を指定できます。
API が提供されています。API オペレーションを呼び出して、移行タスクを作成できます。
利点
データの移行中、サービスのダウンタイムは発生しません。1 つのタスクで、LTS は履歴データを移行し、増分データをリアルタイムで同期できます。
データの移行中、LTS はソース HBase クラスタと対話しません。LTS は、ソースクラスタの Hadoop Distributed File System (HDFS) からのみデータを読み取ります。これにより、ソースクラスタで実行されているオンラインビジネスへの影響が最小限に抑えられます。
ほとんどの場合、API レイヤーでのデータ移行と比較して、ファイルレイヤーでのデータレプリケーションは、データ使用量の 50% 以上を削減し、効率を向上させるのに役立ちます。
各ノードは最大 150 MB/s の速度でデータを移行できるため、データ移行の安定性要件を満たすことができます。水平方向のスケーリングのためにノードを追加して、テラバイトまたはペタバイトのデータを移行できます。
LTS は堅牢な再試行メカニズムを実装してエラーに対応します。LTS はタスクの速度とタスクの進捗状況をリアルタイムで監視し、タスクが失敗した場合はアラートを生成します。
LTS はスキーマを自動的に同期して、パーティションの一貫性を確保します。
制限
Kerberos が有効になっている ApsaraDB for HBase クラスタはサポートされていません。
シングルノードの ApsaraDB for HBase クラスタはサポートされていません。
ネットワークの問題により、クラシックネットワークにデプロイされている ApsaraDB for HBase クラスタはサポートされていません。
Write-Ahead Logging (WAL) に基づいて増分データを同期するために非同期モードが使用されます。BulkLoad を介してインポートされたデータと WAL に書き込まれていないデータは同期されません。
増分同期のログ管理
増分同期機能を有効にした後、ログデータが消費されない場合、ログデータはデフォルトで 48 時間保持されます。期間が経過すると、サブスクリプションは自動的にキャンセルされ、保持されているデータは自動的に削除されます。
タスクの実行中に LTS クラスタが解放された場合、同期タスクが中断された場合、タスクが異常にブロックされた場合など、ログデータが消費されない場合があります。
注意事項
データを移行する前に、移行先クラスタの HDFS 容量が十分であることを確認してください。これは、移行中に容量が不足するのを防ぐのに役立ちます。
増分同期タスクを送信する前に、ソースクラスタのログ保持期間を変更することをお勧めします。LTS が増分同期のエラーを処理するための時間を確保する必要があります。たとえば、hbase-site.xml の hbase.master.logcleaner.ttl 設定を 12 時間より大きい値に変更し、HBase Master を再起動できます。
移行先クラスタに手動でテーブルを作成する必要はありません。LTS は、ソースクラスタと同じ方法でテーブルを自動的に作成します。移行先クラスタに自動的に作成されたテーブルは、ソースクラスタのテーブルと同じ方法でパーティション分割されます。手動で作成されたテーブルのパーティション分割スキームは、ソーステーブルのパーティション分割スキームとは異なる場合があります。その結果、移行プロセスが完了した後、手動で作成されたテーブルが頻繁に分割または圧縮される可能性があります。テーブルに大量のデータが格納されている場合、プロセス全体に時間がかかることがあります。
ソーステーブルにコプロセッサがある場合は、移行先テーブルを作成するときに、移行先クラスタにコプロセッサの対応する JAR パッケージが含まれていることを確認してください。
始める前に
ソースクラスタ、移行先クラスタ、および LTS 間のネットワーク接続を確認します。
HBase および Lindorm データソースを追加します。
LTS Web UI にログインします。
タスクの作成
左側のナビゲーションペインで、[移行] > [クイック移行] を選択します。
パラメーターを構成し、[作成] をクリックしてタスクを作成します。
ジョブ名 フィールドに、タスク名を入力します。タスク名には、文字と数字のみを含めることができます。このフィールドは空のままにすることができます。デフォルトでは、タスク ID がタスク名として使用されます。
画面の指示に従って、ソース クラスターターゲット クラスター および パラメータを設定します。
要件に基づいて操作を選択します。
移行テーブルスキーマ: 移行先クラスターにテーブルを作成します。これらのテーブルは、ソーステーブルと同じスキーマとパーティション情報を持っています。移行先クラスターにテーブルが既に存在する場合、このテーブルのデータは移行されません。
リアルタイムデータレプリケーション: ソースクラスターからリアルタイムの増分データを同期します。
履歴データの移行: ファイルレベルですべてのファイルを物理的に移行します。
テーブルマッピング フィールドに、テーブル名を入力します。テーブル名はそれぞれ 1 行ずつ入力します。
詳細設定 フィールドは空のままにすることができます。
タスクの表示
左側のナビゲーションペインで、[移行] > [クイック移行] を選択して、作成したタスクを表示します。
タスクの詳細の表示
左側のナビゲーションペインで、[移行] > [クイック移行] を選択します。
表示されるページで、表示するタスクの名前をクリックします。タスクの実行ステータスを表示します。
スイッチオーバーの実行
フル移行タスクが完了し、増分同期のレイテンシが数秒または数百ミリ秒になるまで待ちます。
LTS データサンプリングと検証を有効にします。大きなテーブルをサンプリングして検証する場合は、オンラインビジネスへの影響を防ぐために、サンプリング率が適切であることを確認してください。
ビジネスを確認します。
ビジネスでスイッチオーバーを実行します。