このトピックでは、完全データ同期と増分データ同期のユースケース、機能、メリット、制限事項、およびデータ同期タスクの作成方法について説明します。
ユースケース
-
メジャーバージョンアップグレード:たとえば、HBase 1.x から HBase 2.x へのアップグレード。
-
クロスリージョン移行:たとえば、中国 (青島) リージョンから中国 (北京) リージョンへの移行。
-
クロスアカウント移行:異なるアカウント間のデータ移行。
-
クラスターのアップグレード:たとえば、4 コア、8 GB のクラスターから 8 コア、16 GB のクラスターへの移行。
-
ワークロード分割:たとえば、ワークロードの一部を新しいクラスターに移動。
機能
-
HBase 0.94、HBase 0.98、HBase 1.x、HBase 2.x、および Lindorm の各バージョン間でのゼロダウンタイム移行をサポートします。
-
テーブルスキーマ移行、リアルタイムデータレプリケーション、および完全データ同期をサポートします。
-
データベース、名前空間、およびテーブルレベルでの移行をサポートします。
-
移行中のテーブル名変更をサポートします。
-
移行対象として、時間範囲、行キー範囲、または特定の列を指定できます。
-
移行タスクの作成に使用できる OpenAPI を提供します。
メリット
-
履歴データ移行とリアルタイムの増分データ同期を 1 つのタスクで処理することで、ゼロダウンタイムのデータ移行を実現します。
-
移行プロセスでは、ソースクラスターの HDFS から HBase サービスと連携せずに直接データを読み取るため、オンラインサービスへの影響を最小限に抑えられます。
-
ファイルレベルのデータコピーは効率が高く、通常、API レベルの移行と比べてデータ転送量を 50% 以上削減できます。
-
1 ノードあたり最大 150 MB/s でデータを移行できます。ノード数を水平スケールして、テラバイトまたはペタバイト規模のデータを安定して移行できます。
-
堅牢なエラー再試行メカニズム、タスク速度と進捗のリアルタイム監視、タスク失敗時のアラートを備えています。
-
スキーマを自動的に同期し、パーティションの整合性を確保します。
制限事項
-
Kerberos が有効なクラスターはサポートされていません。
-
シングルノードの ApsaraDB for HBase インスタンスはサポートされていません。
-
ネットワークの制限により、クラシックネットワークの ApsaraDB for HBase インスタンスはサポートされていません。
-
増分データ同期は、HBase の先行書き込みログ (WAL) に基づいて非同期に実装されています。BulkLoad を使用してインポートしたデータ、または WAL なしで書き込まれたデータは、Lindorm Tunnel Service (LTS) によって同期されません。
増分同期のログ管理
-
増分同期を有効にした後、データがコンシュームされない場合、ログはデフォルトで 48 時間保持されます。この保持期間を過ぎると、サブスクリプションは自動的にキャンセルされ、保持されているデータは削除されます。
-
データがコンシュームされない可能性があるシナリオには、タスクが終了する前に LTS クラスターが解放された場合、同期タスクが一時停止された場合、またはタスクがエラーによってブロックされた場合が含まれます。
注意事項
-
移行の前に、移行中のストレージ枯渇を防ぐため、ターゲットクラスターに十分な HDFS 容量があることを確認してください。
-
増分データ同期タスクを開始する前に、ソースクラスターのログ保持期間を延長してください。これにより、潜在的なエラーに対処するための時間を確保できます。
hbase-site.xmlのhbase.master.logcleaner.ttlパラメーターを 12 時間より長く設定し、HMaster を再起動します。 -
ターゲットクラスターでテーブルを作成する必要はありません。LTS は、ソースクラスターのスキーマおよびパーティション情報に一致するテーブルを自動的に作成します。手動でテーブルを作成すると、パーティションがソーステーブルと一致せず、移行後に頻繁なスプリットやコンパクションが発生する可能性があります。大規模なテーブルの場合、完了までに時間がかかることがあります。
-
ソーステーブルがコプロセッサを使用している場合は、ターゲットテーブルを作成する前に、ターゲットクラスターに対応するコプロセッサ JAR ファイルが含まれていることを確認してください。
事前準備
-
ソースクラスター、ターゲットクラスター、および LTS 間のネットワーク接続を確認します。
-
HBase および Lindorm のデータソースを追加します。
-
LTS コンソールにログインします。
タスクの作成
-
左側メニューで、[Lindorm/HBase Migration > Quick Migration] を選択します。
-
[Create Task] をクリックします。
-
[Task name]:任意です。名前に英字と数字のみを使用できます。このフィールドを空のままにすると、タスク ID が名前として使用されます。
-
[Source Cluster] と [Target Cluster] を設定します。
-
必要な操作を選択します:
-
[Table Schema Migration]:ソーステーブルと同じスキーマおよびパーティション情報を持つテーブルをターゲットクラスターに作成します。
-
[Real-time Data Replication]:ソースクラスターからの増分データをリアルタイムで同期します。
-
[Historical Data Migration]:既存のすべてのデータをファイルレベルで移行します。
-
-
[Table Mapping]:移行するテーブル名を改行で区切って入力します。
-
[Advanced Configuration]:任意です。
タスクの表示
-
左側メニューで、[Lindorm/HBase Migration > Quick Migration] を選択してタスクを表示します。
タスクの詳細表示
-
左側メニューで、[Lindorm/HBase Migration > Quick Migration] を選択します。
-
タスク名をクリックして、実行ステータスを確認します。
スイッチオーバー
-
完全データ同期が完了し、増分同期のレイテンシが数秒または数百ミリ秒まで低下するまで待ちます。
-
LTS でデータのサンプリングと検証を有効にします。大規模なテーブルの場合は、オンラインワークロードへの影響を避けるため、低いサンプリングレートを使用してください。
-
アプリケーションを検証します。
-
スイッチオーバーを実行します。