このトピックでは、Data Transmission Service (DTS) を使用して PolarDB-X 2.0 インスタンスから AnalyticDB for MySQL V3.0 クラスタにデータを同期する方法について説明します。データ同期後、AnalyticDB for MySQL を使用して、社内ビジネスインテリジェンス (BI) システム、インタラクティブクエリシステム、リアルタイムレポートシステムを構築できます。
前提条件
MySQL 5.7 と互換性のあるソース PolarDB-X インスタンスが作成されている。
宛先 AnalyticDB for MySQL 3.0 クラスタが作成されている。詳細については、「クラスタの作成」をご参照ください。
宛先 AnalyticDB for MySQL 3.0 クラスタのストレージ容量が、ソース PolarDB-X 2.0 インスタンスで使用されているストレージ容量よりも大きい。
注意事項
スキーマ同期中、DTS はソースデータベースから宛先データベースに外部キーを同期しません。
完全データ同期および増分データ同期中、DTS はセッションレベルで外部キーに対する制約チェックとカスケード操作を一時的に無効にします。データ同期中にソースデータベースでカスケード更新および削除操作を実行すると、データの不整合が発生する可能性があります。
カテゴリ | 説明 |
ソースデータベースの制限 |
|
その他の制限 |
|
注意事項 | DTS は、バイナリログファイルの位置を進めるために、ソースデータベースの `dts_health_check`.`ha_health_check` テーブルをスケジュールに従って更新します。 |
課金
| 同期タイプ | タスク構成料金 |
| スキーマ同期と完全データ同期 | 無料。 |
| 増分データ同期 | 有料。詳細については、「課金の概要」をご参照ください。 |
サポートされている同期トポロジ
一方向 1 対 1 同期
一方向 1 対多同期
一方向カスケード同期
一方向多対 1 同期
DTS でサポートされている同期トポロジの詳細については、「同期トポロジ」をご参照ください。
同期可能な SQL 操作
操作タイプ | SQL 文 |
DML | INSERT、UPDATE、および DELETE 説明 宛先 AnalyticDB for MySQL V3.0 クラスタにデータが書き込まれると、UPDATE 文は自動的に REPLACE INTO 文に変換されます。プライマリキーに対して UPDATE 文が実行されると、UPDATE 文は DELETE 文と INSERT 文に変換されます。 |
DDL | CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN、MODIFY COLUMN、および DROP COLUMN |
手順
次のいずれかの方法を使用して [データ同期] ページに移動し、データ同期インスタンスが存在するリージョンを選択します。
DTS コンソール
DTS コンソール にログインします。
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページの左上隅で、データ同期インスタンスが存在するリージョンを選択します。
DMS コンソール
説明実際の手順は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
DMS コンソール にログインします。
上部のナビゲーションバーで、[データ + AI] にポインタを移動し、 を選択します。
データ同期タスク の右側にあるドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページに移動します。
ソースデータベースと宛先データベースを構成します。次の表にパラメータを示します。
警告ソースデータベースと宛先データベースを構成した後、ページに表示される [制限] を読んでおくことをお勧めします。そうでない場合、タスクが失敗したり、データの不整合が発生したりする可能性があります。
セクション
パラメータ
説明
該当なし
タスク名
DTS タスクの名前。DTS はタスク名を自動的に生成します。タスクを簡単に識別できる説明的な名前を指定することをお勧めします。一意のタスク名を指定する必要はありません。
ソースデータベース
既存の接続情報の選択
DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。DTS は、インスタンスの次のデータベースパラメータを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。
説明DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。
インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を構成する必要があります。
データベースタイプ
ソースデータベースのタイプ。[PolarDB-X 2.0] を選択します。
アクセス方法
ソースデータベースのアクセス方法。[Alibaba Cloud インスタンス] を選択します。
インスタンスリージョン
ソース PolarDB-X 2.0 インスタンスが存在するリージョン。
Alibaba Cloud アカウント間でデータを複製
Alibaba Cloud アカウント間でデータを同期するかどうかを指定します。この例では、× が選択されています。
インスタンス ID
ソース PolarDB-X 2.0 インスタンスの ID。
データベースアカウント
ソース PolarDB-X 2.0 インスタンスのデータベースアカウント。アカウントには、同期するオブジェクトに対する SELECT 権限、および REPLICATION CLIENT 権限と REPLICATION SLAVE 権限が必要です。
説明データベースアカウントに権限を付与する方法の詳細については、「PolarDB-X のデータ同期ツール」をご参照ください。
データベースパスワード
データベースへのアクセスに使用するパスワード。
宛先データベース
既存の接続情報の選択
DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。 DTSは、インスタンスの次のデータベースパラメータを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。
説明DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。
インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を構成する必要があります。
データベースタイプ
宛先データベースのタイプ。[AnalyticDB MySQL 3.0] を選択します。
アクセス方法
宛先データベースのアクセス方法。[Alibaba Cloud インスタンス] を選択します。
インスタンスリージョン
宛先 AnalyticDB for MySQL V3.0 クラスタが存在するリージョン。
Alibaba Cloud アカウント間でデータを複製
Alibaba Cloud アカウント間でデータを同期するかどうかを指定します。この例では、× が選択されています。
インスタンス ID
宛先 AnalyticDB for MySQL 3.0 クラスタの ID。
データベースアカウント
宛先 AnalyticDB for MySQL V3.0 クラスタのデータベースアカウント。アカウントには、宛先 AnalyticDB for MySQL V3.0 クラスタに対する読み取りおよび書き込み権限が必要です。
データベースパスワード
データベースへのアクセスに使用するパスワード。
ページの下部にある 接続をテストして続行 をクリックします。
説明DTS サーバーの CIDR ブロックをソースデータベースと宛先データベースのセキュリティ設定に自動または手動で追加して、DTS サーバーからのアクセスを許可できるようにしてください。詳細については、「DTS サーバーの CIDR ブロックの追加」をご参照ください。
同期するオブジェクトを構成します。
オブジェクト設定 ステップで、同期するオブジェクトを構成します。
パラメータ
説明
同期タイプ
同期タイプ。デフォルトでは、[増分データ同期] が選択されています。[スキーマ同期] と [完全データ同期] も選択する必要があります。事前チェックが完了すると、DTS は選択したオブジェクトの既存データをソースデータベースから宛先クラスタに同期します。既存データは、後続の増分同期の基礎となります。
説明[完全データ同期] を選択すると、CREATE TABLE 文を実行して作成されたテーブルのスキーマとデータを宛先データベースに同期できます。
競合テーブルの処理モード
エラーの事前チェックと報告: 宛先データベースにソースデータベースのテーブルと同じ名前のテーブルが含まれているかどうかを確認します。ソースデータベースと宛先データベースに同じテーブル名のテーブルが含まれていない場合、事前チェックは合格です。そうでない場合、事前チェック中にエラーが返され、データ同期タスクを開始できません。
説明ソースデータベースと宛先データベースに同じ名前のテーブルが含まれていて、宛先データベースのテーブルを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、宛先データベースに同期されるテーブルの名前を変更できます。詳細については、「データベース、テーブル、および列名マッピング」をご参照ください。
エラーを無視して続行: ソースデータベースと宛先データベースで同じテーブル名の事前チェックをスキップします。
警告エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
ソースデータベースと宛先データベースのスキーマが同じで、宛先データベースのデータレコードのプライマリキー値または一意キー値がソースデータベースのデータレコードと同じである場合:
完全データ同期中、DTS はデータレコードを宛先データベースに同期しません。宛先データベースの既存のデータレコードは保持されます。
増分データ同期中、DTS はデータレコードを宛先データベースに同期します。宛先データベースの既存のデータレコードは上書きされます。
ソースデータベースと宛先データベースのスキーマが異なる場合、データの初期化に失敗する可能性があります。この場合、一部の列のみが同期されるか、データ同期タスクが失敗します。注意して進めてください。
マージテーブル
[はい]: オンライントランザクション処理 (OLTP) シナリオでは、ビジネステーブルへの応答を高速化するためにシャーディングが実装されています。オンライン分析処理 (OLAP) シナリオでは、1 つのテーブルに大量のデータを保存できます。これにより、SQL クエリがより効率的になります。同じスキーマを持つ複数のソーステーブルを 1 つの宛先テーブルにマージできます。この機能を使用すると、ソースデータベースの複数のテーブルから宛先データベースの 1 つのテーブルにデータを同期できます。詳細については、「複数テーブルマージ機能の有効化」をご参照ください。
説明ソースデータベースから複数のテーブルを選択した後、オブジェクト名マッピング機能を使用して、これらのテーブルの名前を宛先テーブルの名前に変更する必要があります。詳細については、「データベース、テーブル、および列名マッピング」をご参照ください。
DTS は、
__dts_data_sourceという名前の列を宛先テーブルに追加します。この列は、データソースを記録するために使用されます。この列のデータ型は TEXT です。この列の値は、データ同期インスタンス ID:ソースデータベース名:ソーススキーマ名:ソーステーブル名の形式です。これにより、DTS は各ソーステーブルを識別できます。例:dts********:dtstestdata:testschema:customer1。このパラメータを [はい] に設定すると、タスクで選択したすべてのソーステーブルが宛先テーブルにマージされます。特定のソーステーブルをマージする必要がない場合は、これらのテーブル用に個別のデータ同期タスクを作成できます。
警告DDL 操作を実行してソースデータベースまたはテーブルのスキーマを変更しないことをお勧めします。変更すると、データの不整合が発生するか、データ同期タスクが失敗します。
[いいえ]: この値はデフォルトで選択されています。
ソースオブジェクト
ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択し、
アイコンをクリックして、選択中のオブジェクト セクションにオブジェクトを追加します。説明列、テーブル、またはデータベースを同期対象のオブジェクトとして選択できます。テーブルまたは列を同期対象のオブジェクトとして選択した場合、DTS はビュー、トリガー、ストアドプロシージャなどの他のオブジェクトを宛先データベースに同期しません。
データベースを同期対象のオブジェクトとして選択した場合、DTS は次のデフォルトルールに基づいてデータを同期します。
ソースデータベースで同期するテーブルに、単一列のプライマリキーや複合プライマリキーなどのプライマリキーがある場合、プライマリキー列が分散キーとして指定されます。
ソースデータベースで同期するテーブルにプライマリキーがない場合、宛先テーブルに自動採番プライマリキー列が自動的に生成されます。これにより、ソースデータベースと宛先データベース間でデータの不整合が発生する可能性があります。
[選択済みオブジェクト]
宛先インスタンスに同期するオブジェクトの名前を変更するには、選択中のオブジェクト セクションでオブジェクトを右クリックします。詳細については、「オブジェクト名のマッピング」トピックの「個別のデータベース、テーブル、および列名マッピング」セクションをご参照ください。
複数のオブジェクトの名前を一度に変更するには、選択中のオブジェクト セクションの右上隅にある 一括編集 をクリックします。詳細については、「オブジェクト名のマッピング」トピックの「バッチデータベース、テーブル、および列名マッピング」セクションをご参照ください。
説明特定のデータベースまたはテーブルで実行される SQL 操作を選択するには、次の手順を実行します。 [選択済みオブジェクト] セクションで、オブジェクトを右クリックします。表示されるダイアログボックスで、同期する SQL 操作を選択します。
データをフィルタリングするための WHERE 条件を指定するには、[選択済みオブジェクト] セクションでオブジェクトを右クリックします。表示されるダイアログボックスで、条件を指定します。詳細については、「フィルター条件の指定」をご参照ください。
次へ:詳細設定 をクリックして、詳細設定を構成します。
パラメータ
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、専用クラスタを指定しない場合、DTS は共有クラスタにタスクをスケジュールします。データ同期タスクの安定性を向上させるには、専用クラスタを購入します。詳細については、「DTS 専用クラスタとは」をご参照ください。
失敗した接続の再試行時間
接続失敗時の再試行時間の範囲。データ同期タスクの開始後にソースデータベースまたは宛先データベースに接続できない場合、DTS は時間範囲内で接続をすぐに再試行します。有効値: 10 ~ 1440。単位: 分。デフォルト値: 720。このパラメータは 30 より大きい値に設定することをお勧めします。指定した時間範囲内に DTS がソースデータベースと宛先データベースに再接続すると、DTS はデータ同期タスクを再開します。そうでない場合、データ同期タスクは失敗します。
説明ソースデータベースまたは宛先データベースが同じ複数のデータ同期タスクに異なる再試行時間の範囲を指定した場合、最も短い再試行時間の範囲が優先されます。
DTS が接続を再試行すると、DTS インスタンスの料金が発生します。ビジネス要件に基づいて再試行時間の範囲を指定することをお勧めします。また、ソースインスタンスと宛先インスタンスが解放された後、できるだけ早く DTS インスタンスを解放することもできます。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
その他の問題の再試行時間の範囲。たとえば、データ同期タスクの開始後に DDL または DML 操作の実行に失敗した場合、DTS は時間範囲内で操作をすぐに再試行します。有効値: 1 ~ 1440。単位: 分。デフォルト値: 10。このパラメータは 10 より大きい値に設定することをお勧めします。指定した時間範囲内で失敗した操作が正常に実行されると、DTS はデータ同期タスクを再開します。そうでない場合、データ同期タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメータの値は、失敗した接続の再試行時間 パラメータの値よりも小さい必要があります。
完全同期レートを制限するかどうか
完全データ同期中、DTS はソースデータベースと宛先データベースの読み取りおよび書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。完全データ同期タスクの 1 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、1 秒あたりの完全移行データ量 (MB) BPS パラメータを構成して、宛先データベースサーバーの負荷を軽減できます。
説明完全データ同期 が 同期タイプ パラメータに選択されている場合にのみ、このパラメータを構成できます。
増分同期率を制限するかどうか
増分データ同期のスロットリングを有効にするかどうかを指定します。ビジネス要件に基づいて、増分データ同期のスロットリングを有効にできます。スロットリングを構成するには、1 秒あたりの増分同期の行数 RPS パラメータと 1 秒あたりの増分同期データ量 (MB) BPS パラメータを構成する必要があります。これにより、宛先データベースサーバーの負荷が軽減されます。
環境タグ
DTS インスタンスを識別するために使用される環境タグ。ビジネス要件に基づいて環境タグを選択できます。この例では、環境タグを選択する必要はありません。
順方向および逆方向タスクのハートビートテーブル sql を削除
DTS インスタンスの実行中に、ハートビートテーブルに対する SQL 操作をソースデータベースに書き込むかどうかを指定します。有効値:
[はい]: ハートビートテーブルに対する SQL 操作を書き込みません。この場合、DTS インスタンスのレイテンシが表示される場合があります。
[いいえ]: ハートビートテーブルに対する SQL 操作を書き込みます。この場合、ソースデータベースの物理バックアップやクローニングなどの機能が影響を受ける可能性があります。
ETL の設定
抽出、変換、書き出し (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効値:
[はい]: ETL 機能を構成します。コードエディタにデータ処理文を入力できます。詳細については、「データ移行タスクまたはデータ同期タスクでの ETL の構成」をご参照ください。
[いいえ]: ETL 機能を構成しません。
監視アラート
データ同期タスクのアラートを構成するかどうかを指定します。タスクが失敗した場合、または同期レイテンシが指定したしきい値を超えた場合、アラート連絡先に通知が送信されます。有効値:
[いいえ]: アラートを有効にしません。
[はい]: アラートを構成します。この場合、アラートしきい値と アラート通知設定 も構成する必要があります。詳細については、「監視とアラートの構成」トピックの「DTS タスクの作成時に監視とアラートを構成する」セクションをご参照ください。
オプション: ページの下部にある [次へ: データベースとテーブルフィールドの構成] をクリックします。表示されるページで、宛先データベースで同期するテーブルの タイプ、プライマリキー列の追加、配布キー、[パーティションキー]、[パーティションルール]、[パーティションライフサイクル] などのパーティションキー情報を構成します。
説明同期タイプ [同期タイプ] パラメータで [スキーマ同期] を選択した場合にのみ、この手順を実行できます。パラメータを変更するには、[定義ステータス] パラメータを [すべて] に設定します。
[プライマリキー列] フィールドでは、複数の列を指定して複合プライマリキーを形成できます。この場合、1 つ以上の列を 配布キー および [パーティションキー] として指定する必要があります。詳細については、「CREATE TABLE」をご参照ください。
タスク設定を保存し、事前チェックを実行します。
DTS タスクを構成するために関連する API 操作を呼び出すときに指定するパラメータを表示するには、次:タスク設定の保存と事前チェック にポインタを移動し、OpenAPI パラメーターのプレビュー をクリックします。
パラメータを表示する必要がない場合、またはすでに表示している場合は、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。
説明データ同期タスクを開始する前に、DTS は事前チェックを実行します。タスクが事前チェックに合格した後でのみ、データ同期タスクを開始できます。
データ同期タスクが事前チェックに失敗した場合は、失敗した各項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析した後、問題をトラブルシューティングします。次に、事前チェックを再実行します。
事前チェック中に項目に対してアラートがトリガーされた場合:
アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックして、問題をトラブルシューティングします。次に、事前チェックを再度実行します。
アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。次に、[再チェック] をクリックして、事前チェックを再度実行します。アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
データ同期インスタンスを購入します。
[成功率] が [100%] になるまで待ちます。次に、[次へ: インスタンスの購入] をクリックします。
[購入] ページで、データ同期インスタンスの [課金方法] パラメータと [インスタンスクラス] パラメータを構成します。次の表にパラメータを示します。
セクション
パラメータ
説明
新しいインスタンスクラス
課金方法
サブスクリプション: データ同期インスタンスを作成するときにサブスクリプションの料金を支払います。サブスクリプション課金方法は、長期使用の場合、従量課金方法よりも費用対効果が高くなります。
従量課金: 従量課金インスタンスは 1 時間単位で課金されます。従量課金方法は、短期使用に適しています。従量課金データ同期インスタンスが不要になった場合は、インスタンスを解放してコストを削減できます。
リソースグループ設定
データ同期インスタンスが属するリソースグループ。デフォルト値: [デフォルトリソースグループ]。詳細については、「リソース管理とは」をご参照ください。
インスタンスクラス
DTS は、同期速度が異なるインスタンスクラスを提供します。ビジネス要件に基づいてインスタンスクラスを選択できます。詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。
サブスクリプション期間
サブスクリプション課金方法を選択した場合は、サブスクリプション期間と作成するデータ同期インスタンスの数を指定します。サブスクリプション期間は、1 ~ 9 か月、1 年、2 年、3 年、または 5 年です。
説明このパラメータは、サブスクリプション 課金方法を選択した場合にのみ使用できます。
[データ伝送サービス (従量課金) サービス条件] を読んで選択します。
[購入して開始] をクリックします。表示されるダイアログボックスで、OK をクリックします。
タスクの進行状況はタスクリストで確認できます。