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

Data Transmission Service:ApsaraDB RDS for SQL Server インスタンスから DataHub プロジェクトへのデータ同期

最終更新日:Mar 28, 2026

Data Transmission Service (DTS) を使用して、ApsaraDB RDS for SQL Server インスタンスの増分変更を DataHub プロジェクトにストリーミングします。DTS は変更データキャプチャ(CDC)を活用して変更を検出し、完全なデータエクスポートを必要とせずに継続的なストリームとして配信します。

前提条件

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

タスクの分割を検討してください — ソースインスタンスに以下のいずれかの条件が該当する場合:

  • データベース数が 10 を超える

  • 各データベースのトランザクションログバックアップ間隔が 1 時間未満である

  • 各データベースで 1 時間あたり 100 回を超えるデータ定義言語(DDL)操作が実行される

  • 各データベースのトランザクションログ書き込みレートが 20 MB/s である

  • 1,000 テーブルを超えるテーブルに対して CDC を有効化する必要がある

課金

同期タイプ料金
スキーマ同期と完全データ同期無料
増分データ同期有料です。課金概要をご参照ください。

対応する同期トポロジ

  • 一方通行・一対一同期

  • 一方通行・一対多同期

  • 一方通行・多対一同期

詳細については、「同期トポロジ」をご参照ください。

対応する SQL 操作

DTS は以下の DML 操作を同期します:INSERTUPDATE、および DELETE

UPDATE 操作で大規模フィールドのみが変更された場合、DTS では同期されません。

完全データ同期はサポートされていません。このソース/送信先の組み合わせでは、増分データ同期およびスキーマ同期のみが利用可能です。

制限事項

ソースデータベースの要件

  • テーブルにはプライマリキーまたは一意キーが必要であり、すべてのフィールドが一意である必要があります。これらの制約がないテーブルは、送信先で重複レコードを生成する可能性があります。

  • 同期対象としてテーブルを選択し、オブジェクト名の変更を適用する場合、1 つのタスクで最大 5,000 テーブルまで同期できます。5,000 テーブルを超える場合は、複数のタスクを設定するか、データベース単位で同期を行ってください。

  • 1 つのタスクで最大 10 個のデータベースからのデータ同期が可能です。10 個を超えるデータベースの場合は、複数のタスクを設定してください。

  • DTS はトランザクションログを読み取るために fn_log 関数を使用します。タスク実行中にトランザクションログをクリアしないでください。これによりタスクが失敗する可能性があります。

  • タスクの安定性を確保するため、ソースの RDS SQL Server インスタンスで透過的データ暗号化 (TDE) を無効化します。詳しくは、「TDE の無効化」を参照してください。

  • スキーマ同期中にデータベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。タスクが失敗します。

  • ハイブリッドログベース解析モードでは、10 分以内に複数の ADD COLUMN または DROP COLUMN 操作を実行しないでください。たとえば、以下の操作を 10 分以内に連続して実行すると、タスクエラーが発生します。

    ALTER TABLE test_table DROP COLUMN Flag;
    ALTER TABLE test_table ADD Remark nvarchar(50) NOT NULL DEFAULT('');
  • 完全データ同期中に、共有ロック競合を防ぐために、ソースデータベースで READ_COMMITTED_SNAPSHOT を有効化してください。この設定がない場合、データの不整合やインスタンス障害が発生する可能性があり、これらは DTS のサービスレベルアグリーメント(SLA)の対象外となります。

  • ソースが Azure SQL Database の場合、1 つのタスクで同期できるのは 1 つのデータベースのみです。

トランザクションログの要件

シナリオ最低ログ保持期間
増分同期のみ24 時間以上
完全+増分同期最低 7 日間

その他の要件:

  • データログ機能を有効化し、バックアップモードを フル に設定したうえで、フル物理バックアップを実行済みであること。

  • 完全同期完了後は、ログ保持期間を 24 時間以上に短縮できます。

ログ保持要件を満たさない場合、DTS がトランザクションログを取得できず、タスクの失敗、データの不整合、またはデータ損失を引き起こす可能性があります。このような状況における結果は、DTS の SLA の対象外となります。

CDC の要件

ソーステーブルに対して CDC を有効化する必要がある場合、以下の条件を満たす必要があります。条件を満たさないと、事前チェックが失敗します。

  • srvname フィールドの値が sys.sysservers ビュー内で、SERVERPROPERTY 関数の戻り値と一致していること。

  • 自己管理 SQL Server の場合:データベース所有者は sa ユーザーである必要があります。

  • ApsaraDB RDS for SQL Server の場合:データベース所有者は sqlsa ユーザーである必要があります。

  • Enterprise Edition:SQL Server 2008 以降が必要です。

  • Standard Edition:SQL Server 2016 SP1 以降が必要です。

  • SQL Server 2017(Standard または Enterprise Edition)を実行中の場合、より新しいバージョンに更新してください。

  • 1 つのタスクで CDC を有効化するテーブル数は 1,000 を超えてはなりません。この上限を超えると、事前チェックが失敗します。

  • CDC が有効化されたテーブルに書き込まれる単一フィールド値が 64 KB を超える場合、ソースデータベースで以下のコマンドを実行してください。

    CDC では、デフォルトで最大 64 KB のフィールドが処理されます。
    exec sp_configure 'max text repl size', -1;

送信先およびその他の制限

  • 送信先の DataHub プロジェクトにおける単一文字列は、2 MB を超えてはなりません。

  • DTS は外部キーを同期しません。ソース側でのカスケードおよび削除操作は、送信先に伝播されません。

  • DTS は計算列を含むテーブルを同期しません。

  • 同期中に他のソースから送信先へデータを書き込まないでください。これによりデータの不整合が発生します。たとえば、Data Management(DMS)経由でオンライン DDL 操作を実行しながら、他のソースから送信先へ書き込むと、データ損失が発生する可能性があります。

  • タスクが増分同期を含む場合、再インデックス操作はサポートされていません。再インデックス操作を実行すると、タスクが失敗し、データ損失を引き起こす可能性があります。

    DTS は、CDC が有効化されたテーブルのプライマリキーに関連する DDL 操作を同期できません。
  • 同期対象オブジェクトを変更する際、データベースを削除することはできません。

  • 複数の DTS インスタンスが同じソース SQL Server データベースを共有する場合、それらの増分データ収集モジュールは独立して動作します。

  • DTS タスクが失敗した場合、DTS テクニカルサポートは 8 時間以内に復旧を試みます。この期間中、タスクを再起動したり、タスクパラメーター(データベースパラメーターではない)を変更したりできます。

スキーマ同期の範囲

DTS は、スキーマ、テーブル、ビュー、関数、およびプロシージャの初期スキーマ同期をサポートしています。

警告

ソースおよび送信先は、異種データベースです。データの型は一対一でマッピングされません。タスクを開始する前に、データ型変換の影響を評価します。詳細については、「初期スキーマ同期のためのデータの型マッピング」をご参照ください。

DTS は、アセンブリ、サービスブローカー、フルテキストインデックス、フルテキストカタログ、分散スキーマ、分散関数、CLR ストアドプロシージャ、CLR スカラー値関数、CLR テーブル値関数、内部テーブル、システム、および集計関数といったオブジェクトタイプは同期しません。

DTS は、以下のデータ型は同期しません:CURSORROWVERSIONSQL_VARIANTHIERARCHYIDPOLYGONGEOMETRYGEOGRAPHY、および CREATE TYPE で作成されたカスタム型。

DTS がソースデータベースに作成するオブジェクト

ソースデータベースのログに基づく増分同期モードでは、DTS は同期ステータスを追跡するために、ソースデータベースに以下のオブジェクトを作成します。

オブジェクトタイプ目的
dts_cdc_sync_ddlトリガーDDL 変更をキャプチャ
dts_sync_progressテーブル同期遅延(ハートビート)を追跡
dts_cdc_ddl_historyテーブルDDL 変更履歴を保存

ハイブリッドログベース解析モードでは、DTS はソースデータベースおよび特定のテーブルで CDC を有効化します。CDC が有効化されたテーブルの最大スループットを 1 秒あたり 1,000 レコード(RPS)に設定してください。

同期タスクの設定

ステップ 1:データ同期ページを開く

以下のいずれかの方法を使用してください。

DTS コンソール

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

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

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

DMS コンソール

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

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

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

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

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

タスクの作成 をクリックし、以下のパラメーターを設定します。

パラメーター説明必須
タスク名DTS タスクの名前。DTS が自動的に名前を生成しますが、識別しやすいように記述的な名前を指定することを推奨します。名前は一意である必要はありません。いいえ
ソースデータベース — 既存の接続を選択登録済みのデータベースインスタンスを選択して、接続パラメーターを自動入力します。登録済みのインスタンスがない場合は、以下でパラメーターを手動で構成します。いいえ
データベースタイプ(ソース)SQL Server を選択します。はい
アクセス方法(ソース)Alibaba Cloud インスタンス を選択します。はい
インスタンスリージョン(ソース)ソースの ApsaraDB RDS for SQL Server インスタンスのリージョン。はい
Alibaba Cloud アカウント間でのデータ複製アカウント間で同期する場合を除き、いいえ を選択します。はい
RDS インスタンス IDソースの ApsaraDB RDS for SQL Server インスタンスの ID。はい
データベースアカウント同期対象オブジェクトに対する所有者権限を持つデータベースアカウント。はい
データベースパスワードデータベースアカウントのパスワード。はい
暗号化ソースで SSL が有効化されていない場合は、非暗号化 を選択します。SSL が有効化されている場合は、SSL 暗号化 を選択します(DTS はサーバー証明書をデフォルトで信頼します)。はい
送信先データベース — 既存の接続を選択登録済みのデータベースインスタンスを選択して、接続パラメーターを自動入力します。登録済みのインスタンスがない場合は、以下でパラメーターを手動で構成します。いいえ
データベースタイプ(送信先)DataHub を選択します。はい
アクセス方法(送信先)Alibaba Cloud インスタンス を選択します。はい
インスタンスリージョン(送信先)送信先の DataHub プロジェクトのリージョン。はい
プロジェクト送信先の DataHub プロジェクトの名前。はい

パラメーターを入力後、接続テストと続行 をクリックします。

DTS サーバーの CIDR ブロックが、ソースデータベースとターゲットデータベースのセキュリティ設定に追加されていることを確認してください。 詳細については、「DTS サーバーの CIDR ブロックを追加する」をご参照ください。 ソースまたはターゲットが、[Alibaba Cloud インスタンス] 以外のアクセス方法を使用する自己管理データベースの場合は、[DTS サーバーの CIDR ブロック] ダイアログボックスで [接続テスト] をクリックします。

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

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

パラメーター説明必須
同期タイプ増分データ同期 がデフォルトで選択されています。スキーマ同期 も選択してください。はい
競合テーブルの処理モード事前チェックとエラー報告:送信先に同名のテーブルが存在する場合、事前チェックが失敗します。エラーを無視して続行:名前の競合チェックをスキップします(注意して使用してください。データの不整合を引き起こす可能性があります)。下記の競合処理の動作の詳細をご参照ください。はい
追加列ルールDTS が DataHub トピックへデータを書き込む際に、追加列が挿入されます。これらの列が送信先トピックの既存列名と競合する場合、タスクが失敗します。要件に応じて、新規ルール または 既存ルール を選択してください。このパラメーターを設定する前に、名前の競合を確認してください。「追加列の命名規則」をご参照ください。はい
宛先インスタンスでのオブジェクト名の大文字化送信先のデータベース、テーブル、および列名の大文字小文字を制御します。デフォルト: DTS デフォルトポリシー宛先インスタンス内のオブジェクト名の大文字/小文字の指定。「」をご参照ください。いいえ
ソースオブジェクトオブジェクトを選択し、向右 をクリックして 選択済みオブジェクト に移動します。列、テーブル、またはデータベースを選択できます。テーブルまたは列を選択した場合、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトタイプは同期されません。はい
選択済みオブジェクト単一オブジェクトの名前を変更するには、そのオブジェクトを右クリックします。詳細については、「個別のデータベース、テーブル、および列名のマッピング」をご参照ください。複数のオブジェクトの名前を変更するには、[一括編集] をクリックします。詳細については、「一括データベース、テーブル、および列名のマッピング」をご参照ください。右クリックして、同期する特定の SQL 操作を選択するか、行をフィルターするための WHERE 条件を設定します。詳細については、「フィルター条件の設定」をご参照ください。オブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトが機能しなくなる場合があります。はい

競合処理の動作エラーを無視して続行 を選択した場合):

  • 同一スキーマで、プライマリキーまたは一意キーが一致する場合:完全同期中は既存の送信先レコードが保持され、増分同期中は送信先レコードが上書きされます。

  • 異なるスキーマの場合:初期化が失敗する、一部の列のみが同期される、またはタスクが失敗する可能性があります。

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

次へ:高度な設定 をクリックし、以下の設定を行います。

パラメーター説明必須
タスクスケジューリング専用クラスターデフォルトでは、DTS はタスクを共有クラスターにスケジュールします。タスクの安定性を向上させるには、専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。いいえ
接続失敗時の再試行時間タスク開始後にソースまたは送信先に到達できない場合の DTS の再試行時間。有効な値:10~1440 分。デフォルト:720。30 分を超える値を設定してください。共有ソースタスク間で最短の再試行時間が適用される場合、より短い再試行時間が優先されます。再試行期間中は、インスタンスに対して課金されます。いいえ
その他の問題発生時の再試行時間DDL または DML 操作が失敗した場合の DTS の再試行時間。有効な値:1~1440 分。デフォルト:10。10 分を超える値を設定し、接続失敗時の再試行時間 よりも短い値を設定してください。いいえ
増分データ同期の速度制限を有効化送信先への負荷を軽減するために同期レートを制限します。有効化した場合、増分データ同期の RPS および 増分同期のデータ同期速度(MB/s) を設定します。いいえ
環境タグDTS インスタンスを識別するためのタグ。いいえ
ETL の構成はいアラート通知設定を有効化し、抽出・変換・書き出し (ETL) 処理を実行して、データ処理文を入力します。「いいえ」を選択するとスキップされます。「ETL とは何か」および「データ移行またはデータ同期タスクで ETL を設定する」をご参照ください。いいえ
モニタリングとアラートタスクが失敗した場合、または同期遅延がしきい値を超えた場合に通知を受信するには、[はい] を選択します。アラートのしきい値と通知設定を設定します。詳細については、「DTS タスクを作成する際にモニタリングとアラート機能を設定する」をご参照ください。いいえ

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

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

このタスク構成の API パラメーターをプレビューするには、次へ:タスク設定の保存と事前チェック の上にポインターを置き、OpenAPI パラメーターのプレビュー をクリックします。

DTS はタスク開始前に事前チェックを実行します。事前チェックの結果は、以下のとおりに対応してください。

  • 失敗:失敗した項目の横にある 詳細の表示 をクリックし、問題を解決してから再度事前チェックを実行してください。

  • 警告 — 無視不可詳細の表示 をクリックし、問題を解決してから再度事前チェックを実行してください。

  • 警告 — 無視可能警告の詳細の確認 をクリックします。詳細の表示 ダイアログボックスで 無視 をクリックし、OK をクリックします。再び事前チェック をクリックして続行します。警告を無視すると、データの不整合が発生する可能性があります。

ステップ 6:インスタンスの購入および開始

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

  2. 購入 ページで、以下の設定を行います。

    パラメーター説明必須
    課金方法サブスクリプション:前払い方式。長期利用にコスト効率が良いです。従量課金:時間単位で課金されます。短期利用に適しています。不要になったらインスタンスを解放して課金を停止してください。はい
    リソースグループ設定同期インスタンスのリソースグループ。デフォルト: デフォルトリソースグループResource Management とはいいえ
    インスタンスクラス同期スループットの階層。データ量および遅延要件に基づいて選択してください。「データ同期インスタンスのインスタンスクラス」をご参照ください。はい
    サブスクリプション期間サブスクリプション 課金方法で利用可能です。選択肢:1~9 か月、または 1、2、3、5 年。条件付き
  3. Data Transmission Service(従量課金)サービス利用規約 を読み、同意してください。

  4. 購入および開始 をクリックします。ダイアログボックスで OK をクリックします。

タスクはタスクリストに表示されます。そこで進行状況を監視してください。

特殊ケース

ソースが ApsaraDB RDS for SQL Server インスタンスの場合、DTS は同期のためにインスタンス上に rdsdt_dtsacct という名前のアカウントを自動的に作成します。 タスクの実行中にこのアカウントを削除したり、パスワードを変更したりしないでください — そうしないと、タスクが失敗する可能性があります。 詳細については、「システムアカウント」をご参照ください。

次のステップ

  • DTS コンソールのタスクリストで、タスクのステータスおよび同期遅延を監視します。

  • タスク開始後に同期対象を調整するには、タスク構成を編集してください。ただし、同期範囲からデータベースを削除することはできません。

  • 高スループットワークロード向けにタスクの信頼性を向上させるには、専用クラスターの購入を検討してください。