すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:PolarDB for MySQL クラスターから MaxCompute プロジェクトへのデータ同期

最終更新日:Mar 29, 2026

Data Transmission Service (DTS) を使用して、PolarDB for MySQL クラスターのデータを MaxCompute プロジェクトにレプリケーションします。DTS は、スキーマ同期、初期完全データ読み込み、および継続的な増分変更キャプチャを、単一のマネージドタスクで処理します。

事前準備

開始する前に、以下の条件を満たしていることを確認してください。

Alibaba Cloud アカウントの AccessKey ペアを直接使用する代わりに、RAM ユーザーを作成し、RAM ユーザーを MaxCompute プロジェクトのスーパー管理者として設定します。

課金

同期タイプ料金
スキーマ同期および初期完全同期無料
増分データ同期課金概要課金対象です。詳細については、「」をご参照ください。

同期の仕組み

DTS は、同期を以下の 3 つの順次実行されるフェーズで実行します。

  1. スキーマ同期 — DTS は PolarDB for MySQL のテーブルスキーマを MaxCompute にレプリケーションします。各ソーステーブルは MaxCompute で _base サフィックスを付与されます(例: customercustomer_base になります)。

  2. 初期完全同期 — DTS は、ソーステーブルの既存の全行を対応する _base テーブルにコピーします。この完全ベースラインテーブルが、増分同期の起点となります。

  3. 増分データ同期 — DTS は各ソーステーブルごとに _log テーブル(例: customer_log)を作成し、ソースのバイナリログから変更レコードを継続的に当該テーブルに書き込みます。

_log テーブルの構造については、「増分データテーブルの構造」をご参照ください。

サポートされる同期トポロジ

  • 単方向・一対一同期

  • 単方向・一対多同期

  • 単方向・カスケード同期

  • 単方向・多対一同期

完全なリストについては、「同期トポロジー」をご参照ください。

同期可能な SQL 操作

操作タイプSQL ステートメント
DMLINSERT、UPDATE、DELETE
DDLADD COLUMN(属性列を含む ADD COLUMN は同期できません)
DTS は外部キーを同期しません。ソース側でのカスケード操作および削除操作は、宛先には反映されません。

制限事項

ソースデータベース

制限事項詳細
主キーまたは一意キーの必須要件テーブルには PRIMARY KEY または UNIQUE 制約(すべてのフィールドが一意である必要あり)が必要です。これを満たさない場合、宛先に重複レコードが発生する可能性があります。
タスクあたりのテーブル数上限個別テーブルを同期対象として選択し、宛先で名前変更を行う場合、1 つのタスクでは最大 1,000 個のテーブルをサポートします。1,000 個を超える場合は、複数のタスクを設定するか、データベースレベルで同期を行ってください。
バイナリログの要件下記の表をご参照ください。
同期中の DDL 実行スキーマ同期または初期完全同期中に、データベースまたはテーブルのスキーマを変更する DDL ステートメントを実行しないでください。タスクは失敗します。

ソース PolarDB for MySQL クラスターにおけるバイナリログの要件

パラメーター必須値備考
loose_polar_log_binONバイナリロギングは有効にする必要があります。設定されていない場合、事前チェックに失敗し、タスクを開始できません。バイナリロギングを有効にするとストレージ料金が発生します。「バイナリロギングの有効化」および「パラメーターの変更」をご参照ください。
バイナリログの保持期間最低 3 日間(推奨:7 日間)3 日より短い保存期間では、データの不整合や損失のリスクがあり、DTS のサービス レベル アグリーメント (SLA) 保証に影響を及ぼす可能性があります。詳細については、「保存期間の変更」をご参照ください。

その他の制限事項

  • DTS は、ソース PolarDB for MySQL クラスターの読み取り専用ノードを同期しません。

  • DTS は、ソースクラスターの Object Storage Service (OSS) 外部テーブルを同期しません。

  • 同期を開始する前に、ソースおよび宛先データベースのパフォーマンスへの影響を評価してください。可能であれば、非ピーク時間帯に同期を実行してください。初期完全同期では、両端で読み取りおよび書き込みリソースが使用され、サーバー負荷が増加する可能性があります。

  • 初期完全同期が完了した後、宛先データベースの使用済み表領域サイズは、同時 INSERT 操作による断片化のため、ソースよりも大きくなります。

  • 同期中に、pt-online-schema-change などのツールを使用してソーステーブルに対して DDL 操作を実行しないでください。タスクは失敗します。

  • 同期中に他のソースが送信先に書き込まない場合、Data Management (DMS) を使用してソーステーブルでオンライン DDL 操作を実行できます。詳細については、「ロックなし DDL 操作の実行」をご参照ください。

  • 同期中に他からの宛先への書き込みと DMS を介したオンライン DDL を同時に実行すると、宛先でデータ損失が発生する可能性があります。

  • MaxCompute は主キー制約 (PRIMARY KEY constraint) をサポートしていません。ネットワークエラーが発生した場合、DTS が MaxCompute プロジェクトに重複レコードを書き込む可能性があります。

  • DTS タスクが失敗した場合、DTS テクニカルサポートは 8 時間以内にタスクを復旧しようとします。復旧中、タスクが再起動し、タスクパラメーター(データベースパラメーターではない)が変更される可能性があります。変更される可能性のあるパラメーターについては、「インスタンスパラメーターの変更」セクションをご参照ください。

特殊ケース

DTS は、バイナリログ位置を進めるために、ソースデータベース上で定期的に CREATE DATABASE IF NOT EXISTS `test` を実行します。

データ同期タスクの作成

ステップ 1:データ同期ページへ移動

いずれかのコンソールを使用してデータ同期ページを開き、同期インスタンスを配置するリージョンを選択します。

DTS コンソール

  1. DTS コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、データ同期 をクリックします。

  3. ページの左上隅で、データ同期インスタンスが配置されるリージョンを選択します。

DMS コンソール

実際の操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。

  1. DMS コンソール にログインします。

  2. 上部のナビゲーションバーで、Data + AI の上にポインターを合わせ、DTS (DTS) > データ同期 を選択します。

  3. データ同期タスク の右側にあるドロップダウンリストから、データ同期インスタンスが配置されるリージョンを選択します。

ステップ 2:ソースおよび宛先データベースの構成

  1. タスクの作成 をクリックして、タスク構成ページを開きます。

  2. 以下のパラメーターを使用して、ソースおよび宛先データベースを構成します。

セクションパラメーター説明
該当なしタスク名DTS タスクの名前です。DTS が自動的に名前を生成しますが、識別しやすいように意味のある名前を指定することを推奨します。名前は一意である必要はありません。
ソースデータベース既存の接続を選択ソースが既に DTS に登録済みの場合、ドロップダウンリストから選択すると、DTS が残りのパラメーターを自動的に設定します。詳細については、「データベース接続の管理」をご参照ください。DMS コンソールで、[DMS データベースインスタンスの選択] リストからインスタンスを選択します。インスタンスが登録されていない場合は、以下のパラメーターを手動で入力します。
データベースタイプPolarDB for MySQL を選択します。
アクセス方法Alibaba Cloud インスタンス を選択します。
インスタンスリージョンソース PolarDB for MySQL クラスターのリージョンです。
Alibaba Cloudアカウント全体でのデータの複製同一の Alibaba Cloud アカウント内で同期する場合は、いいえ を選択します。
PolarDB クラスター IDソース PolarDB for MySQL クラスターの ID です。
データベースアカウントソースクラスターのアカウントです。同期対象オブジェクトに対する読み取り権限を持つ必要があります。
データベースパスワードデータベースアカウントのパスワードです。
暗号化オプション。セキュリティ要件に応じて、ソース クラスターへの接続に対して SSL 暗号化を有効化します。詳細については、「SSL 暗号化の設定」をご参照ください。
宛先データベース既存の接続を選択送信先が既に DTS に登録済みの場合は、ドロップダウンリストから選択してください。詳細については、「データベース接続の管理」をご参照ください。登録されていない場合は、以下のパラメーターを手動で入力してください。
データベースタイプMaxCompute を選択します。
アクセス方法Alibaba Cloud インスタンス を選択します。
インスタンスリージョン宛先 MaxCompute プロジェクトのリージョンです。
プロジェクトMaxCompute プロジェクトの名前です。
Alibaba Cloud アカウントの AccessKey ID前提条件で用意した AccessKey ID を指定します。
Alibaba Cloud アカウントの AccessKey Secret前提条件で用意した AccessKey Secret を指定します。
  1. 接続テストと続行 をクリックします。

DTS は、ソースおよびターゲットデータベースの両方にアクセスできる必要があります。必要に応じて、DTS サーバーの CIDR ブロックをデータベースのセキュリティ設定に追加します。詳細については、「DTS サーバーの CIDR ブロックを追加する」をご参照ください。
  1. ODPS(MaxCompute)アカウントの権限付与を完了するために OK をクリックし、その後再度 接続テストと続行 をクリックします。

ステップ 3:同期対象の構成

  1. オブジェクトの構成 ステップで、以下のパラメーターを設定します。

パラメーター説明
同期タイプデフォルトでは、増分データ同期 が選択されています。また、スキーマ同期 および 初期完全同期 も選択してください。これら 3 つは、ベースラインデータの確立および継続的な変更のキャプチャに必須です。
追加カラムの命名規則DTS は宛先テーブルにメタデータカラムを追加します。これらのカラム名が既存のカラム名と衝突すると、タスクは失敗します。要件に応じて、新規ルール または 従来のルール を選択してください。選択前に、追加カラムと既存の宛先カラムとの間に名前の衝突がないことを確認してください。詳細については、「追加カラムの命名規則」をご参照ください。
増分データテーブルのパーティション定義要件に応じてパーティション名を選択してください。詳細については、「パーティション」をご参照ください。
競合テーブルの処理モード事前チェックとエラー報告オブジェクト名のマッピング:宛先テーブルがソーステーブルと同じ名前であるかどうかをチェックします。同一の名前が存在する場合、エラーが返され、タスクは開始できません。宛先テーブルを削除せずに競合を解決するには、オブジェクト名マッピング機能を使用してください。詳細については、「」をご参照ください。エラーを無視して続行:名前の競合チェックをスキップします。ソースと宛先のテーブルが同じスキーマを持つ場合、DTS は初期完全同期時に競合レコードをスキップしますが、増分同期時には上書きします。スキーマが異なる場合、データ初期化が部分的に失敗する可能性があります。慎重に使用してください。
宛先インスタンスにおけるオブジェクト名の大文字小文字設定宛先におけるデータベース名、テーブル名、カラム名の大文字小文字を制御します。デフォルトは DTS デフォルトポリシー宛先インスタンス内のオブジェクト名の大文字/小文字の指定 です。詳細については、「」をご参照ください。
ソースオブジェクトソースオブジェクト セクションからテーブルを選択し、右向き矢印アイコンをクリックして、選択されたオブジェクト セクションに移動します。
選択されたオブジェクト送信先の単一オブジェクトの名前を変更するには、[選択したオブジェクト] セクションでそのオブジェクトを右クリックします。「単一オブジェクトの名前をマップする」をご参照ください。複数のオブジェクトの名前を一度に変更するには、右上隅にある [一括編集] をクリックします。「複数のオブジェクト名を一度にマップする」をご参照ください。
  1. 次へ:高度な設定 をクリックし、以下のパラメーターを構成します。

パラメーター説明
タスクスケジューリング用の専用クラスターデフォルトでは、DTS はタスクを共有クラスターにスケジュールします。タスクの安定性を向上させるには、専用クラスターを購入して指定してください。詳細については、「DTS 専用クラスターとは」をご参照ください。
接続失敗時の再試行時間接続失敗後の DTS の再試行時間です。有効範囲:10~1440 分。デフォルト:720 分。30 分を超える値を設定することを推奨します。この時間内に DTS が再接続できた場合、タスクは再開されます。それ以外の場合はタスクが失敗します。複数のタスクが同一のソースまたは宛先データベースを共有する場合、最も短い再試行時間が適用されます。再試行中は、インスタンスに対して課金されます。
その他の問題発生時の再試行時間DDL または DML 操作失敗後の DTS の再試行時間です。有効範囲:1~1440 分。デフォルト:10 分。10 分を超える値を設定することを推奨します。この値は、接続失敗時の再試行時間 よりも小さくする必要があります。
フルデータ同期のスロットリングを有効化初期完全同期中のリソース使用量を制限するために、ソースデータベースへのクエリ毎秒数 (QPS)完全データ移行の RPS、および 完全移行のデータ移行速度 (MB/s) を構成します。初期完全同期 が選択されている場合のみ利用可能です。
増分データ同期のスロットリング有効化増分同期中のリソース使用量を制限するために、増分データ同期の RPS および 増分同期のデータ同期速度 (MB/s) を構成します。
転送および逆再生タスクのハートビートテーブルに対する SQL 操作の削除有無DTS がソースデータベースにハートビート SQL 操作を書き込むかどうかを制御します。はいアラート通知設定:ハートビート操作は書き込まれません。DTS インスタンスに遅延インジケーターが表示される場合があります。いいえ:ハートビート操作が書き込まれます。ソースデータベースの物理バックアップおよびクローン作成に影響を与える可能性があります。
環境タグDTS インスタンスを識別するための任意のタグです。
ETL の構成ETL (抽出・変換・書き出し) 機能を有効化します。[はい]: データ処理文の入力にコードエディタを開きます。詳細については、「ETL をデータ移行またはデータ同期タスクで設定する」をご参照ください。[いいえ]: ETL 構成をスキップします。詳細については、「ETL とは?
モニタリングとアラートタスクの失敗またはしきい値を超えるレイテンシに対してアラートを設定します。いいえ: アラート機能を無効化します。はい: アラート機能を有効化します。アラートのしきい値と通知設定を指定します。詳細については、「DTS タスクを作成するときにモニタリングとアラートを設定する」をご参照ください。

ステップ 4:事前チェックの実行

  1. 次へ:タスク設定の保存と事前チェック をクリックします。

このタスク構成の API パラメーターをプレビューするには、次へ:タスク設定の保存と事前チェック の上にポインターを合わせ、OpenAPI パラメーターのプレビュー をクリックしてください。

DTS は、タスクを開始する前に事前チェックを実行します。

  1. 事前チェックが失敗した場合、失敗項目の横にある 詳細の表示 をクリックし、問題を解決した後、再び事前チェック をクリックします。

  2. アラートがトリガーされた場合:

    • 無視できないアラートの場合は、詳細の表示 をクリックして問題を修正し、その後事前チェックを再実行します。

    • 無視できるアラートの場合は、アラート詳細の確認 をクリックし、ダイアログボックスで 無視 をクリックして OK で確認し、その後 再び事前チェック をクリックします。アラートを無視すると、データの不整合が発生する可能性があります。

ステップ 5:インスタンスの購入

  1. 成功率100% に達するまで待ち、その後 次へ:インスタンスの購入 をクリックします。

  2. 購入 ページで、課金およびインスタンス設定を構成します。

セクションパラメーター説明
新規インスタンスクラス課金方法サブスクリプション:固定期間の前払い方式です。長期利用に適しています。従量課金:時間単位で課金されます。短期利用に適しています。不要になった時点でインスタンスを解放することで、課金を停止できます。
インスタンスクラス同期速度を制御します。スループット要件に基づいてクラスを選択してください。詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。
サブスクリプション期間サブスクリプション課金にのみ該当します。選択肢:1~9 か月、1 年、2 年、3 年、または 5 年です。
リソースグループ設定インスタンスのリソースグループです。デフォルト: デフォルトリソースグループResource Management の概要
  1. Data Transmission Service(従量課金)利用規約 を読み、選択します。

  2. 購入して開始 をクリックし、確認ダイアログで OK をクリックします。

タスクがタスク一覧に表示されます。そこから進行状況を監視できます。

増分データテーブルの構造

増分データテーブルをクエリする前に、MaxCompute で set odps.sql.allow.fullscan=true; を実行して、プロジェクトに対する全表スキャンを許可してください。

各増分データテーブル(_log テーブル)には、元のソースカラムに加えて、DTS が追加した以下のメタデータフィールドが含まれます。

フィールド説明
record_id各ログエントリに対して一意かつ増分となる ID です。UPDATE 操作の場合、DTS は変更を 2 つのレコード(更新前の値と更新後の値)に分割し、これらは同じ record_id を共有します。
operation_flag操作タイプです:I(INSERT)、D(DELETE)、または U(UPDATE)。
utc_timestampバイナリログエントリの協定世界時 (UTC) タイムスタンプです。
before_flag行の値が更新前の状態を表すかどうかを示します。有効値:Y または N
after_flag行の値が更新後の状態を表すかどうかを示します。有効値:Y または N