Data Transmission Service (DTS) は、PolarDB for PostgreSQL (Compatible with Oracle) クラスターから AnalyticDB for MySQL 3.0 へのデータ同期をサポートしています。
前提条件
ターゲットの AnalyticDB for MySQL 3.0 クラスターを作成済みである必要があります。詳細については、「クラスターの作成」をご参照ください。
ソースの PolarDB for PostgreSQL (Compatible with Oracle) クラスターで、wal_level パラメーターを logical に設定します。これにより、論理デコードに必要な情報が先行書き込みログ (WAL) に追加されます。詳細については、「クラスターパラメーターの設定」をご参照ください。
宛先の AnalyticDB for MySQL 3.0 インスタンスのディスク領域は、ソースの PolarDB for PostgreSQL (Compatible with Oracle) インスタンスで使用されているディスク領域よりも大きくする必要があります。
注意事項
スキーマ同期中に、DTS はソースデータベースから外部キーを宛先データベースに同期しません。
完全同期および増分同期中、DTS はセッションレベルで制約チェックおよび外部キーのカスケード操作を一時的に無効にします。タスク実行中にソースデータベースでカスケード更新または削除操作が発生した場合、データ整合性が失われる可能性があります。
種別 | 説明 |
ソースデータベースの制限 |
|
その他の制限 |
|
課金
同期タイプ | 料金 |
スキーマ同期および完全データ同期 | 無料です。 |
増分データ同期 | 課金対象です。詳細については、「課金概要」をご参照ください。 |
サポートされる SQL 操作
操作タイプ | SQL 操作 |
DML | INSERT、UPDATE、DELETE 説明 AnalyticDB for MySQL にデータが書き込まれる際、UPDATE 文は自動的に REPLACE INTO 文に変換されます(プライマリキーが更新される場合は、DELETE+INSERT 文に変換されます)。 |
データベースアカウントに必要な権限
データベース | 必要な権限 | アカウント作成および権限付与方法 |
ソースの PolarDB for PostgreSQL (Compatible with Oracle) インスタンス | 特権アカウント。 | |
宛先の AnalyticDB for MySQL 3.0 インスタンス | 同期オブジェクトに対する宛先データベースの読み取りおよび書き込み権限。 |
操作手順
宛先リージョンの同期タスクリストページに移動します。以下の 2 つの方法のいずれかを使用できます。
DTS コンソールから
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページ左上隅で、同期インスタンスが配置されているリージョンを選択します。
DMS コンソールから
説明実際の操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS インターフェイスのレイアウトとスタイルのカスタマイズ」をご参照ください。
Data Management (DMS) にログインします。
上部のメニューバーで、 を選択します。
データ同期タスク の右側で、同期インスタンスが配置されているリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページを開きます。
ソースおよび宛先データベースを構成します。
カテゴリ
構成
説明
なし
タスク名
DTS は自動的にタスク名を生成します。識別しやすいように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。
ソースデータベース
既存の接続情報の選択
システムに追加済み(新規作成または保存済み)のデータベースインスタンスを使用する場合は、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に構成されます。
説明DMS コンソールでは、この設定項目の名前は DMS データベースインスタンスの選択 です。
データベースインスタンスをシステムに追加していない場合、またはすでに追加済みのインスタンスを使用しない場合は、以下のデータベース情報を手動で構成します。
データベースタイプ
PolarDB (Oracle と互換性) を選択します。
アクセス方法
クラウドインスタンス を選択します。
インスタンスリージョン
ソースの PolarDB for PostgreSQL (Compatible with Oracle) インスタンスが配置されているリージョンを選択します。
インスタンス ID
ソースの PolarDB for PostgreSQL (Compatible with Oracle) インスタンスの ID を選択します。
データベース名
ソースの PolarDB for PostgreSQL (Compatible with Oracle) インスタンス内で同期対象オブジェクトを含むデータベースの名前を入力します。
データベースアカウント
ソースの PolarDB for PostgreSQL (Compatible with Oracle) インスタンスのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
データベースパスワード
データベースアカウントに対応するパスワードを入力します。
宛先データベース
既存の接続情報の選択
システムに追加済み(新規作成または保存済み)のデータベースインスタンスを使用する場合は、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に構成されます。
説明DMS コンソールでは、この設定項目の名前は DMS データベースインスタンスの選択 です。
データベースインスタンスをシステムに追加していない場合、またはすでに追加済みのインスタンスを使用しない場合は、以下のデータベース情報を手動で構成します。
データベースタイプ
AnalyticDB MySQL 3.0 を選択します。
アクセス方法
クラウドインスタンス を選択します。
インスタンスリージョン
宛先の AnalyticDB for MySQL 3.0 インスタンスが配置されているリージョンを選択します。
インスタンス ID
宛先の AnalyticDB for MySQL 3.0 インスタンスの ID を選択します。
データベースアカウント
宛先の AnalyticDB for MySQL 3.0 インスタンスのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
データベースパスワード
データベースアカウントに対応するパスワードを入力します。
構成が完了したら、ページ下部の 接続をテストして続行 をクリックします。
説明DTS サーバーからのアクセスを許可するために、ソースおよび宛先データベースのセキュリティ設定に DTS サーバーの IP アドレス CIDR ブロックを追加していることを確認してください。これは自動的または手動で行えます。詳細については、「DTS サーバーの IP アドレス CIDR ブロックをホワイトリストに追加する」をご参照ください。
ソースまたは宛先データベースが自己管理データベース(アクセス方法 が Alibaba Cloud インスタンス ではない場合)の場合は、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックする必要があります。
タスクオブジェクトを構成します。
オブジェクト設定 ページで、同期するオブジェクトを構成します。
構成
説明
同期タイプ
同期タイプ。デフォルトで 増分データ同期 が選択されています。スキーマ同期 および 完全データ同期 も選択する必要があります。事前チェック完了後、DTS は選択したオブジェクトの既存データをソースデータベースから宛先クラスターに同期します。既存データは、その後の増分同期の基盤となります。
競合するテーブルの処理モード
エラーの事前チェックと報告:宛先データベースに同名のテーブルが存在するかどうかをチェックします。同名のテーブルが存在しない場合、事前チェックはパスします。同名のテーブルが存在する場合、事前チェックは失敗し、データ同期タスクは開始されません。
説明宛先データベースで同名のテーブルを削除または名前変更できない場合は、別のテーブル名にマッピングできます。詳細については、「テーブル名およびカラム名のマッピング」をご参照ください。
エラーを無視して続行:宛先データベースでの重複テーブル名のチェックをスキップします。
警告エラーを無視して続行 を選択すると、データ不整合が発生し、ビジネスにリスクをもたらす可能性があります。例:
テーブルスキーマが同じで、宛先データベースのレコードがソースデータベースのレコードと同じプライマリキーまたは一意キー値を持つ場合:
完全同期中、DTS は宛先クラスターのレコードを保持します。ソースデータベースの対応するレコードは同期されません。
増分同期中、ソースデータベースのレコードが宛先データベースのレコードを上書きします。
テーブルスキーマが異なる場合、初期データ同期が失敗する可能性があります。その結果、一部のカラムデータのみが同期されるか、完全に同期が失敗する可能性があります。慎重に操作してください。
同期する DDL および DML 操作
インスタンスレベルで増分同期する SQL 操作を選択します。サポートされる操作については、「サポートされる SQL 操作」をご参照ください。
説明データベースまたはテーブルレベルで増分同期する SQL 操作を選択するには、選択済みオブジェクト リストで同期オブジェクトを右クリックし、表示されるダイアログボックスで必要な SQL 操作を選択します。
テーブルの結合
○ を選択:OLTP シナリオでは、ビジネステーブルの応答時間を向上させるために、データベースおよびテーブルのシャーディングがよく使用されます。一方、この例の宛先データベースのような OLAP シナリオでは、単一のデータテーブルに大量のデータを格納でき、単一テーブルクエリがより便利になります。このようなシナリオでは、DTS のマルチテーブルマージ機能を使用して、ソースデータベースの同じスキーマを持つ複数のテーブル(シャードテーブル)を宛先データベースの単一テーブルに同期できます。具体的な手順については、「マルチテーブルマージの有効化」をご参照ください。
説明ソースデータベースから複数のテーブルを選択した後、オブジェクト名マッピング機能を使用して、宛先データベースでそれらのテーブル名を同じテーブル名に変更する必要があります。オブジェクト名マッピング機能の詳細については、「テーブル名およびカラム名のマッピング」をご参照ください。
DTS は、宛先テーブルにデータソースを格納するためのテキスト型の
__dts_data_sourceカラムを追加します。カラム値はDTS インスタンス ID:データベース名:スキーマ名:テーブル名形式でテーブルのソースを識別します(例:dts********:dtstestdata:testschema:customer1)。マルチテーブルマージ機能はタスクレベルで適用されるため、テーブルレベルでマルチテーブルマージを実行することはできません。一部のテーブルのみをマージしたい場合は、2 つのデータ同期タスクを作成する必要があります。
警告ソースデータベースでデータベースまたはテーブルスキーマを変更する DDL 操作を実行しないでください。そうしないと、データ不整合または同期タスクの失敗が発生する可能性があります。
× を選択します。これがデフォルトのオプションです。
移行先インスタンスでのオブジェクト名の大文字化
宛先インスタンスでのデータベース、テーブル、カラムオブジェクト名の大文字小文字の扱いポリシーを構成できます。デフォルトでは、DTS デフォルトポリシー が選択されています。ソースまたは宛先データベースのデフォルトポリシーと一致するポリシーを選択することもできます。詳細については、「宛先データベースでのオブジェクト名の大文字小文字の扱い」をご参照ください。
ソースオブジェクト
ソースオブジェクト ボックスで、同期するオブジェクトをクリックし、
をクリックして 選択中のオブジェクト ボックスに移動させます。説明データベース、テーブル、またはカラムの粒度で同期するオブジェクトを選択できます。テーブルまたはカラムを選択した場合、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトは宛先データベースに同期されません。
同期オブジェクトとしてデータベース全体を選択した場合、デフォルトの動作は次のとおりです:
ソースデータベースで同期対象のテーブルにプライマリキー(単一カラムまたは複数カラム)がある場合、そのプライマリキーカラムが分散キーとして使用されます。
ソースデータベースで同期対象のテーブルにプライマリキーがない場合、自動採番主キー列が自動的に生成されます。これにより、ソースおよび宛先データベース間でデータ不整合が発生する可能性があります。
選択中のオブジェクト
宛先インスタンスでの同期オブジェクトの名前を設定するか、どのオブジェクトがデータを受信するかを指定するには、選択中のオブジェクト ボックスで同期オブジェクトを右クリックして変更します。詳細については、「テーブル名およびカラム名のマッピング」をご参照ください。
同期オブジェクトを削除するには、選択中のオブジェクト ボックスでそのオブジェクトをクリックし、
をクリックして ソースオブジェクト ボックスに移動させます。
説明オブジェクト名マッピング機能を使用する場合、マッピングされたオブジェクトに依存する他のオブジェクトの同期が失敗する可能性があります。
WHERE 句を設定してデータをフィルターするには、選択中のオブジェクト ボックスで同期するテーブルを右クリックします。表示されるダイアログボックスでフィルター条件を設定します。詳細については、「フィルター条件の設定」をご参照ください。
増分同期する SQL 操作を選択するには、選択中のオブジェクト ボックスで同期オブジェクトを右クリックし、表示されるダイアログボックスから目的の操作を選択します。
詳細設定へ をクリックして、詳細パラメーターを構成します。
構成
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、DTS は共有クラスターでタスクをスケジュールし、クラスターを選択する必要はありません。より安定したパフォーマンスを得るには、DTS 同期タスクを実行するための専用クラスターを購入できます。詳細については、「DTS 専用クラスターとは」をご参照ください。
失敗した接続の再試行時間
同期タスク開始後、ソースまたは宛先データベースへの接続が失敗した場合、DTS はエラーを報告し、直ちに接続のリトライを開始します。デフォルトのリトライ時間は 720 分です。10 ~ 1,440 分の範囲でカスタムリトライ時間を指定することもできます。30 分以上に設定することを推奨します。指定された時間内に DTS がデータベースへの再接続に成功した場合、同期タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
説明複数の DTS インスタンス(例:インスタンス A およびインスタンス B)が同じソースまたは宛先を共有しており、インスタンス A のネットワークリトライ時間を 30 分、インスタンス B のネットワークリトライ時間を 60 分に設定した場合、両方に 30 分という短い時間が適用されます。
DTS は接続リトライ期間中もタスク実行時間に対して課金するため、ビジネスニーズに基づいてリトライ時間をカスタマイズするか、ソースおよび宛先データベースインスタンスをリリースした直後に DTS インスタンスをできるだけ早くリリースすることを推奨します。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
同期タスク開始後、ソースまたは宛先データベースで接続以外の問題(DDL または DML 実行例外など)が発生した場合、DTS はエラーを報告し、直ちに継続的なリトライ操作を開始します。デフォルトのリトライ時間は 10 分です。1 ~ 1,440 分の範囲でカスタムリトライ時間を指定することもできます。10 分以上に設定することを推奨します。設定されたリトライ時間内に該当操作が成功した場合、同期タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。
完全同期レートを制限するかどうか
完全同期ステージ中、DTS はソースおよび宛先データベースの読み取りおよび書き込みリソースを消費し、データベース負荷が増加します。ソースおよび宛先データベースの負荷を軽減するには、1 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを構成して、完全同期タスクのレート制限を設定できます。
説明この設定項目は、同期タイプ が 完全データ同期 に設定されている場合にのみ利用可能です。
同期インスタンス実行後も、完全同期レートを調整 できます。
増分同期率を制限するかどうか
増分同期タスクのレート制限も設定できます。宛先データベースの負荷を軽減するには、1 秒あたりの増分同期の行数 RPS および 1 秒あたりの増分同期データ量 (MB) BPS を設定します。
環境タグ
ニーズに応じて、インスタンスを識別するための環境タグを選択できます。この例では、タグを選択する必要はありません。
ETL 機能の設定
抽出・変換・書き出し (ETL) 機能を有効にするかどうかを選択します。詳細については、「ETL とは」をご参照ください。有効値:
-
○:ETL 機能を有効にします。コードエディタにデータ処理文を入力します。詳細については、「データ移行またはデータ同期タスクでの ETL の構成」をご参照ください。
-
×:ETL 機能を無効にします。
監視アラート
アラートを構成するかどうかを指定します。同期が失敗した場合やレイテンシーが指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。
×:アラートは構成されません。
○:アラートしきい値を設定し、アラート通知を指定してアラートを構成します。詳細については、「タスク構成中のモニタリングとアラートの設定」をご参照ください。
次へ:データ検証 をクリックして、データ検証タスクを構成します。
データ検証機能を使用する場合は、「データ検証の構成」をご参照ください。
オプション: 上記の構成が完了したら、次:データベースおよびテーブルのフィールド設定 をクリックして、宛先データベースで同期するテーブルの タイプ、プライマリキー列の追加、配布キー、およびパーティションキー情報(パーティションキー、パーティションルール、パーティションのライフサイクル)を設定します。
説明このステップは、タスクオブジェクトを構成する際に 同期タイプ で スキーマ同期 を選択した場合にのみ利用可能です。定義ステータス を すべて に設定することで、変更が可能になります。
プライマリキー列の追加 は、複数のカラムで構成される複合プライマリキーになる場合があります。プライマリキー列の追加 から 1 つ以上のカラムを選択して、配布キー および パーティションキー として使用する必要があります。詳細については、「CREATE TABLE」をご参照ください。
タスクを保存して事前チェックを実行します。
このインスタンスを構成するための API パラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにカーソルを合わせ、表示されるバルーンで OpenAPI パラメーターのプレビュー をクリックします。
API パラメーターの確認が完了したら、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。
説明同期ジョブ開始前に、DTS は事前チェックを実行します。すべての事前チェック項目がパスした場合にのみ、ジョブを開始できます。
事前チェックが失敗した場合、失敗した項目の横にある 詳細を表示 をクリックします。表示される指示に従って問題を修正し、再度事前チェックを実行します。
事前チェックで警告が返された場合:
チェック項目が失敗し、無視できない場合は、項目の横にある 詳細を表示 をクリックします。指示に従って問題を修正し、再度事前チェックを実行します。
無視可能なチェック項目については、アラートの詳細を確認、無視、OK、再度事前チェックを実行 の順にクリックして警告をスキップし、事前チェックを再実行します。警告項目を非表示にした場合、データ不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。
インスタンスを購入します。
成功率 が 100 % になったら、次:インスタンスの購入 をクリックします。
購入 ページで、データ同期インスタンスの課金方法およびリンク仕様を選択します。以下の表に、これらのパラメーターの詳細を示します。
カテゴリ
パラメーター
説明
新しいインスタンスクラス
課金方法
サブスクリプション:インスタンス作成時に支払いを行います。長期的なニーズに適しており、従量課金よりもコスト効率が高くなります。サブスクリプション期間が長いほど、割引率が高くなります。
従量課金:1 時間単位で課金されます。短期的なニーズに適しています。使用後すぐにインスタンスをリリースしてコストを節約できます。
リソースグループ構成
インスタンスが属するリソースグループ。デフォルトはデフォルトリソースグループです。詳細については、「リソース管理とは」をご参照ください。
リンク仕様
DTS は、さまざまなパフォーマンスレベルを持つ同期仕様を提供しています。同期リンク仕様は同期レートに影響します。ビジネスシナリオに基づいて仕様を選択できます。詳細については、「データ同期リンク仕様」をご参照ください。
サブスクリプション期間
サブスクリプションモードの場合、サブスクリプションインスタンスの期間および数量を選択します。1 ~ 9 ヶ月の月単位サブスクリプション、または 1、2、3、5 年の年単位サブスクリプションを選択できます。
説明このオプションは、課金方法が サブスクリプション の場合にのみ利用可能です。
構成が完了したら、Data Transmission Service (従量課金) 利用規約 を読み、同意してください。
購入して起動 をクリックします。OK ダイアログボックスで、OK をクリックします。
データ同期ページでタスクの進捗状況を確認できます。
