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

Data Transmission Service:MySQL の RDS インスタンスから Tablestore インスタンスへのデータ同期

最終更新日:Mar 29, 2026

クエリのオフロード、リアルタイム分析、マルチモデルアクセスなど、高スループットの NoSQL ストアを用いて MySQL データにリアルタイムでアクセスする必要がある場合、手動によるデータ複製はエラーが発生しやすく、保守も困難です。Data Transmission Service (DTS) はこの同期処理を自動化します。DTS は、ApsaraDB RDS for MySQL インスタンス(または自己管理 MySQL データベース)から Tablestore インスタンスへ、一度だけ実行される完全データのロードと、その後継続的に実行される変更データのレプリケーションを行い、カスタムコードなしで両ストアを常に同期状態に保ちます。

前提条件

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

制限事項

タスクの構成を開始する前に、これらの制限事項を理解しておくことで、事前チェックの失敗や同期中のエラーを回避できます。

ソースデータベースの制限事項

制限事項トリガーおよび影響回避策
プライマリキーまたは一意制約が必要PRIMARY KEY または UNIQUE 制約がないテーブルでは、Tablestore に重複レコードが生成されます。タスク開始前に、各テーブルにプライマリキーまたは一意キーを追加してください。
1 タスクあたり最大 1,000 テーブル(テーブルを同期対象として選択する場合)1,000 を超えるテーブルを選択すると、リクエストエラーが発生し、タスクを開始できません。複数のタスクを作成するか、テーブルを個別に選択する代わりに、データベース全体を同期してください。
binlog_row_imagefullこの値が full でない場合、事前チェックに失敗し、タスクを開始できません。ApsaraDB RDS for MySQL の場合は、「インスタンスのパラメーターを変更する」をご参照ください。
バイナリログの保持期間は最低 7 日間保持期間が短いと、同期中にタスクが失敗します。場合によってはデータ損失が発生する可能性があります。タスクを開始する前に、バイナリログの保存期間を延長してください。詳細については、「バイナリログファイルを管理する」をご参照ください。
スキーマ同期および完全データ同期中の DDL 実行不可これらのフェーズ中に DDL ステートメントを実行すると、タスクが失敗します。両フェーズが完了するまで、スキーマ変更を一時停止してください。
不可視カラム(MySQL 8.0.23 以降)DTS は不可視カラム内のデータを読み取れず、データ損失が発生します。明示的なプライマリキーがないテーブルでは、不可視のプライマリキーが自動生成されますが、これも DTS では読み取れません。開始前に、ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; を実行してカラムを可視化してください。「不可視カラム」および「生成された不可視プライマリキー」をご参照ください。
EncDB 機能EncDB 機能が有効化された ApsaraDB RDS for MySQL インスタンスでは、完全データ同期はサポートされていません。EncDB を無効化するか、EncDB を使用していないインスタンスを使用してください。透過的データ暗号化(TDE)が有効化されたインスタンスでは、スキーマ同期、完全同期、増分同期のすべての同期タイプがサポートされます。

自己管理 MySQL の追加要件:

  • バイナリロギングを有効化し、binlog_formatrow に、binlog_row_imagefull に設定します。詳細については、「自己管理 MySQL データベース用のアカウントを作成してバイナリロギングを設定する」をご参照ください。

  • デュアルプライマリクラスターでは、DTS がすべてのバイナリログをキャプチャできるよう、log_slave_updatesON に設定してください。

  • タスク実行中にプライマリ/セカンダリ スイッチオーバーを実行すると、タスクが失敗します。

  • DTS は、バイナリログファイルの位置を進めるために、予定通りにソースデータベースで CREATE DATABASE IF NOT EXISTS 'test' ステートメントを実行します。

ApsaraDB RDS for MySQL の追加要件:

  • トランザクションログを記録しない ApsaraDB RDS for MySQL インスタンス(例:読み取り専用の ApsaraDB RDS for MySQL 5.6 インスタンス)は、ソースデータベースとして使用できません。

  • DTS は、バイナリログファイルの位置を進めるために、予定通りにソースデータベースで CREATE DATABASE IF NOT EXISTS 'test' ステートメントを実行します。

ターゲットデータベースの制限事項

制限事項トリガーおよび影響回避策
Tablestore インスタンスあたり最大 64 テーブル64 を超えるテーブルを同期すると、リクエストエラーが発生します。制限の引き上げについては、Tablestore のテクニカルサポートにお問い合わせください。
Tablestore の命名規則テーブル名およびカラム名が命名規則に違反すると、タスクが失敗します。名前には英字、数字、アンダースコア(_)のみを使用でき、先頭は英字またはアンダースコアで始める必要があります。また、長さは 1~255 文字である必要があります。タスク開始前に、規則に準拠しないテーブルおよびカラムの名前を変更してください。

一般的な制限事項

制限事項影響推奨事項
同期実行中に、他のソースから送信先へデータが書き込まれる場合ソースと送信先の間でデータ不整合が発生します。タスク実行中は、DTS を経由したみ書き込みを許可してください。
同期対象オブジェクトに対するオンライン DDL 操作(例:`pt-online-schema-change` など)タスクが失敗します。同期中のオブジェクトに対してオンライン DDL 操作を実行しないでください。
初期フル同期中の並列 INSERT 操作テーブルの断片化が発生し、このフェーズ終了後に送信先の表領域がソースより大きくなります。送信先のストレージ容量を、この点を踏まえて計画してください。
バイナリログの変更操作から取得されたデータ(物理バックアップからの復元またはカスケード操作によって生成されたもの)このデータは送信先に同期されません。同期対象オブジェクトの変更影響を受けるテーブルを同期対象から除外し、その後再登録してください。詳細については、「」をご参照ください。
ソースおよびターゲットデータベースへのパフォーマンスへの影響を軽減するため、非ピーク時間帯に同期を実行してください。

課金

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

増分同期でサポートされる SQL 操作

操作タイプSQL ステートメント
DMLINSERT、UPDATE、DELETE

必要な権限

ソースの ApsaraDB RDS for MySQL インスタンスのデータベースアカウントには、同期対象オブジェクトに対する読み取りおよび書き込み権限が必要です。

ApsaraDB RDS for MySQL コンソール経由でアカウントを作成しなかった場合は、以下の権限を手動で付与してください。

  • REPLICATION CLIENT

  • REPLICATION SLAVE

  • SHOW VIEW

  • SELECT

データ同期タスクの作成

タスクの構成には、以下の 9 ステップがあります:データ同期ページへの移動、タスクの作成、ソースおよびターゲットデータベースの構成、接続性のテスト、同期対象の選択、高度な設定の構成、プライマリキー列のマッピング、事前チェックの実行、インスタンスの購入です。

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

DTS コンソールまたは DMS コンソールを開き、データ同期ページへ移動します。

DTS コンソール

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

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

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

DMS コンソール

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

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

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

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

ステップ 2:タスクの作成

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

  2. (任意)プロンプトが表示された場合は、右上隅の 新規構成ページ をクリックします。

    前のバージョンに戻る ボタンが表示されている場合は、このステップをスキップしてください。新旧の構成ページでは、特定のパラメーターが異なる場合があります。新規バージョンの使用を推奨します。

ステップ 3:ソースおよびターゲットデータベースの構成

ソースの ApsaraDB RDS for MySQL インスタンスおよびターゲットの Tablestore インスタンスの接続情報を構成します。

セクションパラメーター説明
該当なしタスク名DTS が自動的に名前を生成します。タスクを識別しやすくするために、意味のある名前を指定してください。タスク名は一意である必要はありません。
ソースデータベースDMS データベースインスタンスを選択Alibaba Cloud データベースインスタンスの登録サードパーティのクラウドサービスでホストされているデータベース、または自己管理データベースの登録既に登録済みのデータベースを選択するか、接続情報を手動で設定してください。既存のデータベースを選択した場合、DTS がパラメーターを自動的に入力します。Alibaba Cloud のデータベースインスタンスを登録するには、「」をご参照ください。自己管理データベースまたはサードパーティクラウドサービス上のデータベースを登録するには、「」をご参照ください。
データベースタイプMySQL を選択します。
アクセス方法Alibaba Cloud インスタンス を選択します。
インスタンスリージョンソースの ApsaraDB RDS for MySQL インスタンスが配置されているリージョンです。
Alibaba Cloud アカウント間でのデータ複製現在の Alibaba Cloud アカウント内のデータベースを使用する場合は、いいえ を選択します。
RDS インスタンス IDソースの ApsaraDB RDS for MySQL インスタンスの ID です。
データベースアカウントデータベースアカウントです。「必要な権限」で、このアカウントに必要な権限をご確認ください。
データベースパスワードデータベースアカウントのパスワードです。
暗号化暗号化なし または SSL 暗号化クラウド証明書を使用して SSL暗号化を有効にする を選択します。SSL 暗号化を利用する場合は、事前に ApsaraDB RDS for MySQL インスタンスで SSL 暗号化を有効化してください。「」をご参照ください。
送信先データベースDMS データベースインスタンスを選択既に登録済みのデータベースを選択するか、接続情報を手動で設定してください。データベースの登録については、上記「ソースデータベース」のリンクをご参照ください。
データベースタイプTablestore を選択します。
アクセス方法Alibaba Cloud インスタンス を選択します。
インスタンスリージョン送信先の Tablestore インスタンスが配置されているリージョンです。
インスタンス ID送信先の Tablestore インスタンスの ID です。
Alibaba Cloud アカウントの AccessKey IDTablestore インスタンスを所有する Alibaba Cloud アカウントの AccessKey ID です。RAM ユーザーの AccessKey ID を使用すると、必要な権限が不足している場合、タスクが失敗する可能性があります。
Alibaba Cloud アカウントの AccessKey SecretTablestore インスタンスを所有する Alibaba Cloud アカウントの AccessKey Secret です。

ステップ 4:接続性のテスト

接続性のテストと続行 をクリックします。

DTS は、Alibaba Cloud のデータベースインスタンス(ApsaraDB RDS for MySQL など)のホワイトリストおよび自己管理データベースをホストする Elastic Compute Service (ECS) インスタンスのセキュリティグループルールに、自動的に自サーバーの CIDR ブロックを追加します。オンプレミスデータセンターまたはサードパーティのクラウドプロバイダーでホストされているデータベースの場合は、CIDR ブロックを手動で追加します。詳細については、「DTS サーバーの CIDR ブロック」をご参照ください。

警告

DTS サーバーの CIDR ブロックをデータベースのホワイトリストまたはセキュリティグループルールに追加することは、セキュリティリスクを伴います。続行する前に、強力な認証情報の使用、公開ポートの制限、API 呼び出しの認証、ホワイトリストルールの定期監査、不正な CIDR ブロックの制限などの予防措置を講じてください。あるいは、Express Connect、VPN Gateway、Smart Access Gateway を介して接続することもできます。

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

このステップでは、DTS がレプリケーションするテーブル、競合時の処理方法、および Tablestore へのデータ書き込み方法を決定します。

同期オプション:

パラメーター説明
同期タイプスキーマ同期全量データ同期、および 増分データ同期 を選択します。全量データ同期では、まず既存データをロードし、その後、増分同期によって送信先を継続的な変更と同期させます。
競合テーブルの処理モード事前チェックを行い、エラーを報告オブジェクト名のマップ(デフォルト):送信先に同名のテーブルがすでに存在する場合、事前チェックは失敗します。必要に応じて、オブジェクト名マッピング機能を使用して競合するテーブルの名前を変更してください。詳細については、「」をご参照ください。エラーを無視して続行:このチェックをスキップします。全量同期中は、主キーまたは一意キーが一致する既存のレコードはそのまま保持されます。増分同期中は、これらのレコードは上書きされます。ソースと送信先のスキーマが不一致の場合、部分同期やタスクの失敗が発生する可能性があります。慎重に実行してください。
操作タイプ同期対象の DML 操作です。すべての操作タイプがデフォルトで選択されています。要件に応じて調整してください。
不正データの処理ポリシー書き込みエラーに対する対応方法:「スキップ」または「ブロック」です。
データ書き込みモードTablestore へのデータ書き込み方法です。「行の上書き」では UpdateRowChange 操作を使用し、「行の更新」では PutRowChange 操作を使用します。
バッチ書き込みモード複数行を一度に書き込む方法です。「BulkImportRequest」(オフライン書き込み)または「BatchWriteRowRequest」(複数行書き込み)から選択します。「BulkImportRequest」は、スループットが高くコストが低いことから推奨されます。
宛先インスタンスにおけるオブジェクト名の大文字小文字設定Tablestore におけるデータベース名、テーブル名、カラム名の大文字小文字の設定ポリシーです。デフォルト値:「DTS デフォルトポリシー宛先インスタンスにおけるオブジェクト名の大文字小文字の指定」。詳細については、「」をご参照ください。
ソースオブジェクト同期対象のデータベースまたはテーブルを選択し、向右 をクリックして「選択済みオブジェクト」に追加します。
選択済みオブジェクト送信先でのオブジェクト名を変更するには、該当オブジェクトを右クリックします。複数のオブジェクトを一括して名前変更するには、「一括編集オブジェクト名のマップ」をクリックします。詳細については、「」をご参照ください。条件に基づいて行をフィルターするには、テーブルを右クリックし、WHERE 句を指定します。詳細については、「フィルター条件の設定」をご参照ください。
データベース名のマッピングはサポートされていません。オブジェクト名のマッピングは、テーブルを同期対象として選択した場合にのみ適用されます。オブジェクトの名前を変更すると、依存関係のある他のオブジェクトが壊れる可能性があります。カラムタイプの変更は、カラム名マッピング機能を使用して行うことができます。

パフォーマンスチューニング(任意):

[詳細]」をクリックして、これらの Tablestore 書き込みパラメーターを設定します。

パラメーター説明
キュー サイズ書き込みキューの長さです。
スレッド数書き込み用のコールバック スレッド数です。
同時実行数Tablestore への書き込みで許可される最大並行スレッド数です。
バケット数順次増分書き込みにおける並行バケット数です。値を大きくすると、並行書き込みスループットが向上します。ただし、同時実行数以下である必要があります。

ステップ 6:高度な設定の構成

[次へ: 詳細設定] をクリックして、以下のオプションを設定します。

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

ステップ 7:Tablestore のプライマリキー列の構成

[次へ: データベースおよびテーブルフィールドの設定] をクリックし、確認ダイアログで [OK] をクリックします。

DTS は、各ソーステーブルのプライマリキー列をデフォルトで Tablestore にマッピングします。別の列を使用するには、[定義ステータス]すべて に設定し、[プライマリキー列] のドロップダウンリストから列を選択します。

複合プライマリキーを構成するには、複数のカラムを選択します。

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

[次へ: タスク設定を保存して事前チェック] をクリックして構成を保存し、事前チェックを開始します。

このタスク構成の API パラメーターをプレビューするには、[次へ: タスク設定の保存と事前チェック] の上にマウスを移動させ、[OpenAPI パラメーターのプレビュー] をクリックします。

DTS は、タスクを開始する前に事前チェックを実行します。いずれかの項目が失敗した場合:

  1. 失敗した項目の横にある[詳細の表示]をクリックして、原因を確認します。

  2. 問題を修正してから、[事前チェックを再実行] をクリックします。

項目に対してアラートがトリガーされた場合:

  • アラートを無視できる場合は、[アラートの詳細を確認] をクリックし、[無視] をクリックし、[OK] をクリックしてから、[再事前チェック] をクリックします。アラートを無視すると、データの不整合が発生する可能性があります。

  • アラートを無視できない場合:問題を解決してから、次のステップに進んでください。

ステップ 9:データ同期インスタンスの購入

成功率100%に達するまで待ってから、[次: インスタンスの購入]をクリックします。

購入ページで、以下の項目を構成します。

パラメーター説明
課金方法サブスクリプション:前払い方式。長期利用に適しており、コスト効率が優れています。契約期間のオプション:1~9か月、1年、2年、3年、または5年。従量課金:時間単位で課金されます。短期利用に適しています。ご利用が不要になった場合は、インスタンスをリリースして継続的な課金を回避してください。
リソースグループ設定項目インスタンスが属するリソースグループです。デフォルト値: デフォルトリソースグループResource Management の概要
インスタンスクラスデータ同期インスタンスのインスタンスクラスデータ同期のスループットレベルです。詳細については、「」をご参照ください。

Data Transmission Service (従量課金)サービス利用規約」を読み、同意してください。その後、[購入して開始] をクリックしてください。

確認ダイアログで [OK] をクリックします。タスクはタスク リストに表示され、進行状況をモニターできます。

次のステップ

  • DTS コンソールで同期遅延をモニターします。ソースで長期間 DML 操作が実行されない場合、表示される遅延値は正確でないことがあります。遅延値を更新するには、ソースで任意の DML 操作を実行してください。データベース全体を同期する場合は、1 秒ごとに更新されるハートビートテーブルを作成することを検討してください。

  • 同期するテーブルを変更するには、「同期するオブジェクトの変更」をご参照ください。

  • タスクの開始後に書き込みパフォーマンスを調整するには、タスクの設定ページで [Queue Size][Thread Quantity][Concurrency]、および [Buckets] パラメーターを調整します。