Lindorm/HBaseデータベースからOceanBaseデータベースのHBase API互換モードへのデータ移行タスクを新規作成し、構造移行、全量移行、増分同期を通じて、ソースデータベースの既存業務データと増分データをターゲットデータベースへシームレスに移行できます。
注意
データ移行タスクが長期間非アクティブ状態(タスク状態が失敗、一時停止または完了)にある場合、増分ログの保持期間などの影響でタスクが復元できない可能性があります。データ移行は、非アクティブ状態が7日を超えるタスクを自動的に解放し、関連リソースを回収します。タスクにアラートを設定し、タスク関連の異常を速やかに処理することを推奨します。
前提条件
ソース側のデータベースインスタンスが作成済みであること。
ターゲット側のOceanBaseデータベースのクラスタとテナントが作成済みであること。詳細については、インスタンスの作成および新規テナントの作成をご参照ください。
ソース側とターゲット側に、データ移行専用のデータベースユーザーを作成し、関連する権限を付与していること。詳細については、ユーザー権限の説明をご参照ください。
制限事項
データ移行タスクを新規作成できるのは、プロジェクトロールが プロジェクトオーナー、プロジェクト管理者、または データサービス管理者 のユーザーのみです。
現在、データ転送はLindorm/HBaseワイドテーブルエンジンのバージョンV2.x、OceanBaseデータベースのHBase API互換モードV4.2.5以降のバージョンをサポートしています。
データ転送は、Lindorm/HBaseデータベース内のテーブル名および列名が0-9、a-z、A-Z、アンダースコア(_)で構成されたデータを、OceanBaseデータベースのHBase API互換モードへ移行する場合にのみサポートします。
Lindorm/HBaseデータベースのデータをOceanBaseデータベースのHBase API互換モードへ移行する際は、HBaseモデルのテーブルオブジェクトのみをサポートします。他のテーブルオブジェクトタイプを選択した場合、データ品質に影響を与える可能性があります。
増分同期設定におけるKafkaパーティション数は、1に設定することを推奨します。
注意事項
アリババクラウドのLindorm/HBaseからOceanBaseデータベースのHBase API互換モードへのデータ移行タスクは、長期的な同期手段としては推奨されません。データ移行にのみ使用してください。以下の2つの状況が存在する場合、増分同期段階でデータ品質に問題が発生し、フル検証段階で検出される可能性があります。
指定バージョン(タイムスタンプ)方式で値を更新する場合、データ転送ではそれを認識できません。
特定の行キー(rowkey)のフィールドデータを空文字列('')にするput操作が存在する場合、増分同期段階でその値を削除したものと判断される可能性があります。
Lindorm/HBaseのデータをOceanBaseデータベースのHBase API互換モードへ移行する際、フル検証はINモードでのデータ取得のみをサポートし、ターゲット側にソース側にないデータが存在する場合を検証できません。また、検証性能も一定程度低下します。
ソース側またはターゲット側に大文字小文字のみ異なるテーブルオブジェクトが存在する場合、ソース側またはターゲット側の大文字小文字不感応により、データ移行の結果が期待通りにならない可能性があります。
ノード間の時刻同期が取れていない場合、またはクライアント端末とサーバー間の時刻同期が取れていない場合、遅延時間(増分同期/逆増分)が正確でない可能性があります。例えば、時計が標準時より進んでいる場合、遅延時間が負の数値になる可能性があります。時計が標準時より遅れている場合、遅延が発生する可能性があります。
Lindorm/HBaseとOceanBaseデータベースのHBase API互換モードのTTL(Time to Live)設定が一致しない場合、ソース側とターゲット側のデータが一致しない可能性があります。
データ移行タスクの作成時に 増分同期 のみを設定した場合、データ転送ではソース側データベースのKafkaがデータを48時間以上保持することを要求します。
データ移行タスクの作成時に フル移行 + 増分同期 を設定した場合、データ転送ではソース側データベースのKafkaがデータを少なくとも7日間以上保持することを要求します。そうでない場合、データ転送はKafka保持データを取得できないため、データ移行タスクが失敗したり、ソース側とターゲット側のデータが一致しなくなったりする可能性があります。
サポートされているソース側およびターゲット側のインスタンスタイプ
クラウドプロバイダ |
ソース側 |
ターゲット側 |
|---|---|---|
| Alibaba Cloud | Alibaba Cloud Lindorm | OceanBaseデータベースのHBase API互換モード |
| Alibaba Cloud | Alibaba Cloud HBase拡張版 | OceanBaseデータベースのHBase API互換モード |
操作手順
データ移行タスクを新規作成します。
OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、データサービス > データ移行 をクリックします。
データ移行 ページで、データ移行 タブをクリックします。
データ移行 タブで、右上の 移行タスクを作成する をクリックします。
タスク名を編集するテキストボックスに、カスタムの移行タスク名を入力します。
中国語、数字、英字の組み合わせを使用することを推奨します。名前にはスペースを含めず、長さは64文字を超えないようにしてください。
ソースとターゲットを設定する ページで、各パラメータを設定します。
ソース セクションで、各パラメータを設定します。
既に作成・保存されているデータソースを参照する必要がある場合、ソース の右側にある クイックフィル をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択完了後、ソースエリアの各設定が自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、ソース エリアの右上にある 保存 アイコンをクリックしてください。
また、クイックフィル のドロップダウンリストで データソースの管理 をクリックすると、データソース ページに移動し、データソースの表示・管理ができます。この記事では異なる種類のデータソースを一元的に管理します。詳細については、データソースモジュールのドキュメントをご参照ください。
パラメータ説明クラウドベンダー 現在 Alibaba Cloud をサポートしています。 データベースタイプ 実際の状況に応じて、ソースデータベースタイプを Lindorm または HBase に選択します。 リージョン ソースデータベースのリージョンを選択します。 インスタンスタイプ Alibaba Cloud Lindorm または Alibaba Cloud HBase Enhanced Edition が含まれます。 接続タイプ パブリックネットワーク接続 を選択する場合は、ページに表示されているデータソースのIPアドレスをソースデータベースインスタンスのホワイトリストに追加して、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択モジュールのドキュメントをご参照ください。 接続情報 ソースデータベースのアドレスまたはIPを入力します。 ポート ソースデータベースのポートを入力します。 データベースアカウント データ移行に使用するデータベースアカウントです。 パスワード データベースアカウントのパスワードです。 Kafkaを介してソースデータベースの増分データを取得する必要がある場合は、KafkaデータソースとTopicを入力してください。設定が欠けていると、増分同期が利用できなくなる可能性があります。
パラメータ説明Kafkaデータソース データ転送で保存されたKafkaデータソースを選択できます。詳細については、データソースの新規作成をご参照ください。 注意
同一のクラウドベンダーのKafkaデータソースのみを選択できます。
Topic Topicを選択または入力できます。 増分データ形式 サポートされている増分データ形式を選択します。現在DEBEZIUM_V2をサポートしています。 ターゲット側 エリアで、各パラメータを設定します。
既に作成・保存されているデータソースを参照する必要がある場合、ターゲット の右側にある クイックフィル をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択完了後、ターゲットエリアの各設定が自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、ターゲット側 エリアの右上にある 保存 アイコンをクリックしてください。
また、クイックフィル のドロップダウンリストで データソースの管理 をクリックすると、データソース ページに移動し、データソースの表示・管理ができます。この記事では異なる種類のデータソースを一元的に管理します。詳細については、データソースモジュールのドキュメントをご参照ください。
パラメータ説明クラウドプロバイダ 現在、Alibaba Cloud のみサポートしています。 リージョン ターゲットデータベースが存在するリージョンを選択します。 データベースタイプ ターゲットデータベースのタイプとして OceanBase HBase API Compatible を選択します。 インスタンスタイプ ターゲットインスタンスのタイプとして、クラスタインスタンス(KV型) または クラスタインスタンス(フラッグシップ版) を選択します。 インスタンス OceanBaseデータベースHBase API互換モードのテナントが存在するインスタンスのIDまたは名前です。インスタンス ページで、ターゲットインスタンスのIDまたは名前を確認できます。 説明
クラウドプロバイダがAlibaba Cloudの場合、アカウント間認証をサポートするAlibaba Cloudのメインアカウントインスタンスも選択できます。詳細については、Alibaba Cloudアカウント認証をご参照ください。
テナント OceanBaseデータベースHBase API互換モードのテナントのIDまたは名前です。インスタンス ページで、ターゲットインスタンスを展開し、そのインスタンス配下のターゲットテナントのIDまたは名前を確認できます。 データベースアカウント データ移行に使用するOceanBaseデータベースHBase API互換モードのテナントのユーザー名です。 パスワード データベースユーザーのパスワード。
テストして続行 をクリックします。タイプとオブジェクトを選択してください ページで、各パラメータを設定します。
移行タイプ 領域で、現在のデータ移行タスクの移行タイプを選択します。
移行タイプ には、スキーマ移行、完全移行、および 増分同期 が含まれます。
パラメータ説明構造移行 構造移行では、文字セットのマッピング関係を自ら定義する必要があります。データ移行は、ソースデータベースのデータ(構造)をターゲットデータベースにコピーするだけで、ソースデータ(構造)に影響を与えません。 フル移行 フル移行タスク開始後、データ移行サービスはソースデータベースのテーブルの既存データをターゲット側データベースの対応するテーブルに移行します。 増分同期 増分同期タスク開始後、データ移行はソースデータベースで変更されたデータ(追加、変更、削除)をターゲットデータベースの対応するテーブルに同期します。 説明
- Lindorm/HBaseデータソース作成時にKafkaデータソースをバインドしなかった場合、増分同期を選択できません。
- 増分同期 > DML同期を選択した場合は、Alibaba Cloudサポートにお問い合わせください。Kafkaへのデータ配信が順序付けられていることを確認してください。そうでない場合、データ不整合のリスクが生じる可能性があります。Lindormの設定詳細については、「リアルタイムデータサブスクリプションの概要」のリアルタイムデータサブスクリプションを、HBaseの設定詳細についてはStreams(リアルタイムデータサブスクリプション)機能紹介をご参照ください。
移行範囲を選択してください 領域で、移行対象の選択方法を設定します。
現在、オブジェクトの指定 で移行オブジェクトを選択できます。
移行範囲を選択してください 領域で、移行するオブジェクトを選択します。
オブジェクトの指定 を選択した場合、データベース・テーブル移行では、1つまたは複数のデータベース内のテーブルやビューを移行対象として選択できます。左側で移行対象を選択し、> をクリックして右側のリストに追加します。
データ移行では、テキスト形式でオブジェクトをインポートでき、ターゲット側のオブジェクトに対して名前変更、パーティション設定、単一またはすべての移行オブジェクトの削除などの操作をサポートしています。
操作説明オブジェクトのインポート 選択領域の右側リストで、右上の インポート対象 をクリックします。移行オブジェクトのインポートをご参照ください。 名前の変更 データ移行は移行オブジェクトの名前変更をサポートしています。データベース・テーブルの名前変更をご参照ください。 パーティション設定 データ転送がパーティション設定をサポートするのは、スキーマ移行 を選択した場合のみです。選択済みボックス内で、対象テーブルの右側にある フィルタ条件の変更 をクリックすると、対象テーブルのパーティション設定を行えます。パーティション設定をご参照ください。 削除/すべてクリア データ移行では、データマッピング時に、一時的にターゲット側に選択された単一または複数のオブジェクトを削除できます。 - 単一の移行オブジェクトの削除
選択領域の右側リストで、対象オブジェクトの後ろにある 削除 アイコンをクリックすると、その移行オブジェクトを削除できます。 - すべての移行オブジェクトの削除
選択領域の右側リストで、右上の すべてクリア をクリックします。ダイアログボックスで、わかりました をクリックすると、すべての移行オブジェクトを削除できます。
- 単一の移行オブジェクトの削除
次へ をクリックします。移行オプション ページで、増分同期の各パラメータを設定します。
フル移行
パラメータ説明読み取り並列設定 このパラメータは、フル移行段階でソース側からデータを読み取る並列数を設定します。最大制限は512です。並列数が高すぎると、ソース側の負荷が過大になり、業務に影響を与える可能性があります。 書き込み並列設定 このパラメータは、フル移行段階でターゲット側にデータを書き込む並列数を設定します。最大制限は512です。並列数が高すぎると、ターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 移行データバージョン すべてのバージョン(デフォルト)または最新バージョンを選択できます。Lindorm/HBaseはマルチバージョンストレージをサポートしており、timestampでデータ行のバージョンをマークします。「すべてのバージョン」を選択すると、フル移行はデータ行のすべてのバージョンを移行します。「最新バージョン」を選択すると、フル移行は最新のtimestampを持つデータ行バージョンのみを移行します。 ターゲット側テーブルオブジェクトにレコードが存在する場合の処理ポリシー 処理ポリシーには 移行を停止する と 無視する が含まれます: - 移行を停止する を選択した場合、ターゲット側テーブルオブジェクトにデータが存在すると、フル移行はエラーとして「移行を許可できません」と表示されます。ターゲット側のデータを適切に処理してから、移行を続けてください。
注意
エラー発生後に「復元」をクリックすると、データ移行はこの設定オプションを無視し、テーブルデータの移行を続けます。操作は慎重に行ってください。
- 無視する を選択した場合、ターゲット側テーブルオブジェクトにデータが存在すると、元のデータと書き込むデータが競合した場合、データ移行は競合データをログに記録し、元のデータを変更せずにデータ書き込みを行うポリシーを採用します。
フル移行レート制限 実際のニーズに応じて、フル移行レート制限を有効にするかどうかを決定できます。有効にする場合は、RPS(フル移行段階で1秒間にターゲット側に移行できるデータ行数の最大値の制限)とBPS(フル移行段階で1秒間にターゲット側に移行できるデータ量の最大値の制限)を設定してください。 説明
ここで設定されたRPSとBPSは、速度制限とトラフィック制限の能力としてのみ機能します。フル移行が実際に達成できる性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
- 移行を停止する を選択した場合、ターゲット側テーブルオブジェクトにデータが存在すると、フル移行はエラーとして「移行を許可できません」と表示されます。ターゲット側のデータを適切に処理してから、移行を続けてください。
増分同期
タイプとオブジェクトを選択してください ページで、増分同期 を選択した場合にのみ、以下のパラメータが表示されます。
パラメータ説明書き込み並列数設定 このパラメータは、増分同期フェーズにおいてターゲット側へデータを書き込む並列数を設定します。最大値は512です。並列数が高すぎるとターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 増分同期開始時刻 - 移行タイプ選択時に 全量移行 を選択した場合、このパラメータは表示されません。
- 移行タイプ選択時に 完全移行 を選択せず、増分同期 を選択した場合は、この時間以降のデータを移行するよう指定してください。デフォルトは現在のシステム時刻です。詳細については、増分同期の開始時刻の設定をご参照ください。
増分移行レート制限 実際のニーズに応じて、増分同期のレート制限を有効にするかどうかを決定できます。有効にする場合は、RPS(増分同期フェーズにおいて1秒間にターゲット側に同期できるデータ行数の上限)とBPS(増分同期フェーズにおいて1秒間にターゲット側に同期できるデータ量の上限)を設定してください。 説明
ここで設定されたRPSとBPSは、速度制限とトラフィック制限の能力としてのみ機能します。実際の増分同期で達成可能な性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
事前チェック をクリックすると、システムがデータ移行タスクの事前チェックを実行します。
事前チェック の段階では、データ移行はデータベースユーザーの読み書き権限やデータベースのネットワーク接続などが要件を満たしているかどうかをチェックします。すべてのチェック項目に合格して初めて、データ移行タスクを開始できます。事前チェックでエラーが発生した場合:
問題を調査・処理した後、事前チェックを再実行し、成功するまで繰り返すことができます。
操作列の失敗した事前チェック項目の スキップ をクリックすることもできます。ダイアログボックスが表示され、この操作をスキップする具体的な影響について警告します。スキップしてもよいことを確認したら、ダイアログボックス内の OK をクリックしてください。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページで購入を行います。
購入が成功すると、データ移行タスクを開始できます。購入の詳細については、データ移行インスタンスの購入をご参照ください。データ移行インスタンスの購入が一時的に不要な場合は、保存 をクリックして、データ移行タスクの詳細ページに移動してください。その後、必要に応じて手動で購入できます。
データ移行の詳細ページの右上にある 検証タスクの設定 をクリックすると、ソースデータベースとターゲットデータベースのデータの差異を比較できます。詳細については、データ検証タスクの新規作成をご参照ください。
データ移行サービスは、データ移行タスクの実行中に移行オブジェクトを変更することをサポートしています。詳細については、移行オブジェクトの表示と変更をご参照ください。データ移行タスクは開始後、選択した移行タイプに従って順次実行されます。詳細については、データ移行タスクの詳細の表示の「移行の詳細を見る」モジュールの内容をご参照ください。