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

ApsaraDB RDS:RDS for MySQL から DuckDB ベースの分析プライマリインスタンスにデータを同期する

最終更新日:Aug 26, 2026

Data Transmission Service (DTS) を使用して、RDS for MySQL インスタンスから DuckDB ベースの分析プライマリインスタンスへスキーマとデータを同期します。DuckDB はカラムナストレージ、Just-in-Time (JIT) コンパイル、ベクトル化実行、並列処理をサポートし、InnoDB と比べて複雑なクエリのパフォーマンスが最大 100 倍向上します。そのため、ビジネスインテリジェンス (BI) ダッシュボード、インタラクティブなクエリシステム、リアルタイムレポーティングパイプラインの構築に適しています。

[セットアップの概要:] セットアップは 3 つのステージで構成されます:ソースデータベースとターゲットデータベースの構成 → 同期オブジェクトと詳細設定の選択 → 事前チェックの実行と同期インスタンスの購入。

前提条件

開始する前に、次の項目を確認してください:

サポートされているソースインスタンス タイプ

DTS は、次の MySQL ソース タイプをサポートしています:

  • RDS for MySQL

  • ECS インスタンス上のセルフマネージド MySQL データベース

  • オンプレミスのセルフマネージド MySQL データベース

このトピックでは、[RDS for MySQL] インスタンスを使用した構成例を示します。セルフマネージド MySQL データベースでも手順は同様です。

ソースがセルフマネージド MySQL データベースの場合は、事前に追加の準備手順を完了してください。「準備の概要」をご参照ください。

サポートされている SQL 操作

DDL: CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN、DROP COLUMN、MODIFY COLUMN

DML: INSERT、UPDATE、DELETE

UPDATE および DELETE ステートメントには、ORDER BY 句または LIMIT 句を含めることはできません。
同期中にソース テーブルのフィールド型を変更すると、タスクはエラーを報告して停止します。手動で解決するには、「フィールド型の変更が原因で発生した同期失敗を修正する」をご参照ください。

制限事項

  • すべてのソース テーブルにはプライマリキーが必要です。プライマリキーがないテーブルは同期できません。

  • 同期中に gh-ost または pt-online-schema-change を使用してソース テーブルに対してオンライン DDL 変更を実行しないでください。タスクが失敗します。DMS または gh-ost を使用する場合は、詳細設定のステップで [Replicate Temporary Tables Generated by Online DDL Tools] を構成してください。

  • プレフィックスインデックスはサポートされていません。ソース テーブルでプレフィックスインデックスを使用している場合、タスクが失敗する可能性があります。

  • DuckDB ベースの分析プライマリインスタンス クラスターは、いずれかのノードのディスク使用率が 80% を超えるとロックされます。同期オブジェクトに必要な容量を事前に見積もってください。

  • ターゲットインスタンスのバックアップ中に DTS タスクを実行すると、タスクは失敗します。

  • DuckDB ベースの分析プライマリインスタンスは、同期タスクのソースとして使用できません。

  • LIMIT 句、UUID() などの非決定性関数、または XA トランザクションを含む DML ステートメントは、Unsafe レプリケーション操作としてマークされます。これにより、ソースとターゲット間でデータ不整合が発生する可能性があります。

  • 両方のデータベースの CPU 使用率が 30% 未満となるオフピーク時間帯に同期をスケジュールしてください。完全データ同期は、両方のデータベースの読み取りおよび書き込み負荷を増加させます。

課金

同期タイプ 料金
スキーマ同期および完全データ同期 無料
増分データ同期 有料。「課金の概要」をご参照ください。

必要なデータベースアカウント権限

データベース 必要な権限
RDS for MySQL 特権アカウントの使用を推奨します。標準アカウントの場合:すべての同期オブジェクトに対する REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、SELECT。
DuckDB ベースの分析プライマリインスタンス 特権アカウントの使用を推奨します。標準アカウントの場合:READ と WRITE。

同期タスクのセットアップ

ステップ 1:ソースデータベースとターゲットデータベースの構成

  1. DTS コンソールにログオンします。 左側のナビゲーションペインで、[データ同期] を選択します。 上部のナビゲーションバーで、インスタンスが存在するリージョンを選択します。

  2. [データ同期タスク] ページで、[タスクの作成] をクリックします。

  3. [同期タスクの作成] > [ソースデータベースと宛先データベースの設定] ページで、以下のパラメーターを設定します。

ソースインスタンス

パラメーター 説明
Database Type [Relational Database] > [MySQL]
Access Mode [Cloud Instance]
Instance Region ソースインスタンスのリージョン。タスク購入時に選択され、後から変更できません。
Cross-account Synchronization [No]
Instance ID ソースの RDS for MySQL インスタンスの ID。
Database Account ソースインスタンスのデータベースアカウント。「必要なデータベースアカウント権限」をご参照ください。
Database Password データベースアカウントのパスワード。
Connection Method [Non-encrypted Connection] または [SSL-encrypted Connection]。SSL を使用するには、事前に RDS インスタンスで SSL 暗号化を有効化してください。「Use a cloud-native certificate to enable SSL encryptionUse a cloud-native certificate to enable SSL encryption
重要

現在、暗号化 は中国本土のリージョンおよび香港 (中国) リージョンでのみ設定できます。

重要

SSL 暗号化は、中国本土および中国 (香港) リージョンでのみ設定できます。

ターゲットインスタンス

パラメーター 説明
Database Type [Data Warehouse] > [DuckDB]
Access Mode [Cloud Instance]
Instance Region ターゲットインスタンスのリージョン。タスク購入時に選択され、後から変更できません。
Cross-account Synchronization [No]
RDS Instance ID ターゲットの DuckDB ベースの分析プライマリインスタンスの ID。
Database Account ターゲットインスタンスのデータベースアカウント。「必要なデータベースアカウント権限」をご参照ください。
Database Password データベースアカウントのパスワード。
Connection Method [Non-encrypted Connection] または [SSL-encrypted Connection]
重要

現在、暗号化 は中国本土のリージョンおよび香港 (中国) リージョンでのみ設定できます。

DTS はクロスリージョン同期をサポートしています。このトピックでは、同一リージョンおよび同一 VPC のインスタンスを例として使用します。その他のシナリオについては、「データ同期シナリオの概要」をご参照ください。
  1. [接続をテストして続行] をクリックします。

  2. [DTS サーバーアクセス承認] ダイアログボックスで、[接続テスト] をクリックします。

ステップ 2:同期オブジェクトと詳細設定の構成

  1. [同期オブジェクトの設定] ページで、次のパラメーターを設定します。

パラメーター 説明
[Synchronization Types] ユースケースに応じて同期タイプを選択します:<br>• フル同期のみ:[Schema Synchronization] と [Full Data Synchronization] を選択します。<br>• サービスを停止せずに継続同期:[Schema Synchronization]、[Full Data Synchronization]、[Incremental Data Synchronization] (有料) を選択します。<br><br>
説明

[Schema Synchronization] をスキップする場合は、ターゲットデータベースにターゲット テーブルが既に存在することを確認してください。[Incremental Data Synchronization] をスキップする場合は、データ整合性を維持するため、同期中にソースデータベースへの書き込みを行わないでください。

[Trigger Migration Method] トリガーの扱い方を選択します。[Schema Synchronization] を選択した場合にのみ使用できます。トリガーを使用しない場合は、このパラメーターをスキップしてください。「トリガーを同期または移行する方法を構成する」をご参照ください。
[Enable Migration Evaluation] ソースとターゲットのスキーマ (インデックス長、ストアドプロシージャ、依存テーブル) が要件を満たしているかを評価します。[Schema Synchronization] を選択した場合にのみ使用できます。[Yes] に設定すると、事前チェックの所要時間は長くなりますが、事前チェック中に評価結果を確認できます。評価結果は事前チェックの結果には影響しません。
[Synchronization Topology] [One-way Synchronization] を選択します。
[Processing Mode for Existing Tables] • [Precheck and Report Error]:ターゲットデータベースに同名のテーブルが既に存在する場合、事前チェック中にエラーを報告します。競合するテーブルの名前を変更するには、「テーブル名と列名をマッピングする」をご参照ください。<br>• [Ignore and Continue]:存在チェックをスキップします。<br><br>
警告

[Ignore and Continue] を使用する場合、競合の扱いは同期タイプによって異なります。完全同期では、DTS はターゲットのレコードを保持し、ソースのレコードをスキップします。増分同期では、ソースのレコードがターゲットのレコードを上書きします。スキーマが一致していない場合、一部のデータしか同期されなかったり、タスクが失敗したりする可能性があります。

[Migrate Event] イベントを移行するかどうかを選択します。[Yes] を選択した場合は、「イベントを同期または移行する」の要件に従ってください。
[Case Sensitivity of Object Names] ターゲットにおけるデータベース名、テーブル名、列名の大文字と小文字の区別ポリシーを設定します。デフォルトは [DTS Default Policy] です。「ターゲットデータベース内のオブジェクト名の大文字と小文字の区別ポリシー」をご参照ください。
[Source Objects] [Source Objects] ボックスで同期するオブジェクトを選択し、向右小箭头 をクリックして [Selected Objects] ボックスに移動します。データベース、テーブル、列のレベルで選択できます。テーブルまたは列のみを選択すると、ビュー、トリガー、ストアドプロシージャは対象外になります。
[Selected Objects] オブジェクトを右クリックして名前を変更するか、WHERE 句で行をフィルタリングします。[Batch Edit] をクリックすると複数のオブジェクト名を変更できます。「テーブル名と列名をマッピングする」および「WHERE 句を使用してデータをフィルタリングする」をご参照ください。
  1. [次へ: 詳細設定] をクリックし、必要に応じて以下のパラメーターを設定します。ほとんどのシナリオでは、デフォルト設定のままで問題ありません。

パラメーター 説明
[Dedicated Cluster] デフォルトでは、DTS は共有クラスター上でタスクを実行します。タスクの安定性を高めるには、専用クラスターを購入してください。「DTS 専用クラスター」をご参照ください。
[Replicate Temporary Tables Generated by Online DDL Tools] オンライン DDL ツールが生成する一時テーブルの扱いを制御します。pt-online-schema-change はサポートされていません。<br>• [Yes]:一時テーブルのデータを同期します。大きな一時テーブルはレイテンシーを増加させる可能性があります。<br>• [No, Adapt to DMS Online DDL]:一時テーブルのデータをスキップし、DMS の元の DDL のみを同期します。この処理中、ターゲット テーブルはロックされます。<br>• [No, Adapt to gh-ost]:一時テーブルのデータをスキップし、gh-ost の元の DDL のみを同期します。必要に応じて、シャドウテーブルとトラッシュテーブルの正規表現を構成します。この処理中、ターゲット テーブルはロックされます。
[Migrate Accounts] ソースのデータベースアカウント情報を同期するかどうかを選択します。[Yes] の場合は、アカウントを選択し、権限を確認してください。「データベースアカウントを移行する」をご参照ください。
[Retry Duration upon Connection Failure] 接続エラーが発生した後、タスクが失敗するまで DTS が再試行する時間。デフォルト:720 分。範囲:10~1,440 分。30 分以上に設定してください。この期間内に DTS が再接続できた場合、タスクは自動的に再開されます。<br><br>
説明

複数の DTS インスタンスが同じソースまたはターゲットを共有する場合、最短の再試行時間がすべてのインスタンスに適用されます。DTS は再試行期間中も課金されます。

[Retry Duration for Other Errors] 接続以外のエラー (DDL または DML の実行失敗など) に対して DTS が再試行する時間。デフォルト:10 分。範囲:1~1,440 分。10 分以上に設定してください。[Retry Duration upon Connection Failure] より短くする必要があります。
[Data Rate Limit for Full Synchronization] ターゲットデータベースへの負荷を抑えるため、完全同期のデータレートを制限します。[QPS Limit for Source Database]、[RPS Limit for Full Synchronization]、[BPS Limit for Full Synchronization (MB/s)] を設定します。[Full Data Synchronization] を選択した場合にのみ使用できます。
[Data Rate Limit for Incremental Synchronization] 増分同期のデータレートを制限します。[RPS Limit for Incremental Synchronization] と [BPS Limit for Incremental Synchronization (MB/s)] を設定します。
[Remove Heartbeat Table SQL] DTS がソースデータベースにハートビート SQL を書き込むかどうかを制御します。<br>• [Yes]:ハートビート SQL を書き込みません。DTS インスタンスで遅延が表示される場合があります。<br>• [No]:ハートビート SQL を書き込みます。ソースデータベースの物理バックアップおよびクローンに影響する可能性があります。
[Environment Tag] インスタンスの環境を識別するためのタグ。
[Scenario Tag] インスタンスのユースケースを識別するためのタグ。
[Configure ETL] 抽出、変換、ロード (ETL) 機能を構成するかどうかを選択します。「DTS の移行または同期タスクで ETL を構成する」をご参照ください。
[Sensitive Data Scan and Desensitization] 転送中に機密データを識別してマスキングする場合に有効にします。
  1. [次へ: データ検証の設定] をクリックして、データ検証を設定します。

スキーマ検証は、過去の互換性の問題により、誤って不整合エラーを報告する場合があります。これは実際の同期結果には影響しません。誤検出を避けるため、スキーマ検証は有効化しないでください。
パラメーター 説明
[Full Verification Mode] • [Full-field verification on sampled rows]:全フィールド検証のサンプリング率 (10~100%) を設定します。検証したデータ量に基づいて課金されます。<br>• [Row count verification]:行数のみを検証し、データ内容は検証しません。無料です。
[Full Verification Schedule] [Start Now] のみサポートされています。
[Full Verification Timeout] • [Not set]:検証タスクは完了するまで実行されます。<br>• [Set]:指定した期間が経過した後にタスクを強制終了します。値は 1~72 の整数である必要があります。
[Full Verification Baseline] • [Default]:ソースとターゲットの和集合をベースラインとして使用します。<br>• [Source]:ターゲットデータベースのデータがソースと一致することを検証します。ターゲットにのみ存在するデータは無視します。<br>• [Destination]:ソースデータベースのデータがターゲットと一致することを検証します。ソースにのみ存在するデータは無視します。
[Maximum RPS for Full Verification] データベースの負荷を抑えるため、完全検証中に 1 秒あたりに読み取る行数を制限します。0 は制限なしを意味します。これと [Maximum BPS for Full Verification (byte/s)] の両方を 0 に設定した場合、レート制限は適用されません。
[Maximum BPS for Full Verification (byte/s)]
[Incremental Verification Baseline] 検証する DML 操作をフィルタリングします。
[Verification Objects] [Selected Objects]デフォルトでは、すべての同期オブジェクトが含まれます。検証しないオブジェクトは、[Selected Objects] ボックスで選択して 移除 をクリックし、削除してください。
[Full Verification Alert] 検証失敗、または不整合データがしきい値を超えた場合のアラートを設定します。
[Incremental Verification Alert] 検証失敗、不整合レコード数、またはレイテンシーがしきい値を超えた場合のアラートを設定します。
  1. [次へ: タスクを保存して事前チェック] をクリックします。

ステップ 3:事前チェックの実行と購入

  1. [事前チェック合格率] が 100% に達したら、[次へ: 購入] をクリックします。

    事前チェックに合格するまで、タスクは開始できません。チェック項目が失敗した場合、失敗した項目の横にある 提示 アイコンをクリックして原因を確認し、問題を修正して事前チェックを再実行してください。警告項目をスキップするには、[確認] をクリックしてから [無視して事前チェックを再実行] をクリックします。
  2. [購入] ページで、請求方法とリンク仕様を選択します。

カテゴリ パラメーター 説明
[基本情報] [Billing Method] • [サブスクリプション]:前払いです。長期利用ではコスト効率が高く、期間が長いほど割引率が高くなります。<br>• [従量課金]:時間単位で課金されます。短期利用に適しており、インスタンスはいつでもリリースして課金を停止できます。
[リソースグループ] インスタンスのリソースグループ。デフォルトは [Default Resource Group] です。「What is Resource Management?」をご参照ください。
[リンク仕様] 同期スループットを決定します。データ量とレイテンシー要件に基づいて選択してください。「データ同期リンクの仕様」をご参照ください。
[Subscription Duration] [サブスクリプション] の課金方法でのみ使用できます。1~9 か月、または 1、2、3、5 年を選択します。
  1. [データ転送サービス (従量課金) 利用規約]を読み、同意して、[購入して開始]をクリックし、次に [OK] をクリックします。

  2. 購入が完了すると、[データ同期タスク] ページにリダイレクトされます。タスク ID をクリックしてその詳細ページを開き、[タスク管理] をクリックして同期の進捗を監視します。

フィールド型の変更が原因で発生した同期失敗の修正

同期中にソース テーブルのフィールド型が変更されると、タスクは停止します。次の手順で問題を解決します。

  1. ターゲットインスタンスで、失敗したテーブル (例:customer) を基に新しいテーブル (例:customer_new) を作成します。更新後のスキーマに合わせてフィールド型を調整します。

  2. INSERT INTO SELECT を実行して、元のテーブルから新しいテーブルにデータをコピーします。両方のテーブルに同一のデータが含まれていることを確認します。

  3. 元のテーブルをリネームまたは削除し、新しいテーブルを元の名前 (例:customer) にリネームします。

  4. DTS コンソールで同期タスクを再起動します。

次のステップ