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

Data Transmission Service:複数テーブルのマージの有効化

最終更新日:Aug 21, 2026

Data Transmission Service (DTS) を使用してデータ同期またはデータ移行を実行する場合、宛先データベースが AnalyticDB for MySQL 3.0 であれば、DTS は複数テーブルのマージ機能を提供します。この機能により、ソースデータベース内の同一構造を持つ複数のテーブルを統合し、宛先データベースの単一データテーブルにマージできます。これにより、より効率的で便利なデータ移行と統合が可能になります。

前提条件

宛先が AnalyticDB for MySQL 3.0 の移行タスクまたは同期タスクを作成し、オブジェクトの設定と詳細設定 ステップに進んでいること。関連する設定ドキュメントについては、「データ同期ソリューションの概要」または「データ移行ソリューションの概要」をご参照ください。

注意事項

  • データ検証が有効になっているタスクでは、複数テーブルのマージを有効にすることはできません。

  • 複数テーブルのマージが有効になっている増分タスクは、DDL 操作をサポートしていません。ソースデータベースで DDL 操作を実行すると、データ損失やタスクの失敗を引き起こす可能性があります。

手順

このセクションでは、DTS データ同期インスタンスで複数テーブルのマージを有効にする方法を説明します。

  1. オブジェクトの設定と詳細設定 ステップに移動し、テーブルの結合 セクションより前のすべてのパラメーターを設定します。

  2. テーブルの結合 セクションで、 を選択します。

  3. 任意: __dts_data_source の値を設定 で、いいえ を選択します。

    説明

    タグ列の名前と値のカスタマイズは、サブスクリプションインスタンスでのみサポートされています。

  4. ソースオブジェクト ペインで同期するテーブルを選択し、向右小箭头 アイコンをクリックして 選択中のオブジェクト ペインに移動します。

  5. 選択中のオブジェクト ペインで、同期するテーブルを右クリックします。テーブルの編集 ダイアログボックスで、テーブル名 を変更します。

    説明

    テーブル名 は、宛先データベースにおけるテーブルの名前です。

    テーブル名 の変更と同様のプロセスです。[テーブルの編集] ダイアログボックスで、テーブル名をターゲット名 (例: person_new) に変更し、[フィルター条件] (標準の SQL WHERE 句をサポートし、フル同期と増分同期の両方に適用されます) を設定し、同期する [DML 操作] (insert、update、または delete) を選択し、同期する列 (例: p_name と p_id) を選択できます。完了したら、[OK] をクリックします。

  6. 前の手順を繰り返して、選択したすべてのテーブルの テーブル名 を変更します。

    重要

    マージされるすべてのテーブルに、同じ テーブル名 を指定する必要があります。

  7. 画面の指示と参考ドキュメントに従って、残りのタスク設定を完了します。

    ステップ 3__dts_data_source の値を設定 を選択した場合、データベース設定とテーブルのフィールド設定 ステップで __dts_data_source の値 も設定する必要があります。

    説明

    __dts_data_source の値 列の値は、テーブルごとに一意である必要があります。

    [データベースとテーブルフィールドの構成] ページで、[__dts_data_source の値] 列を見つけ、各ソーステーブルに一意の値を入力します。このページの他の列には、[スキーマ名][テーブル名][タイプ] (例:パーティションテーブル)、[プライマリキー列]、および [分散キー] が含まれます。

よくある質問

__dts_data_source 列を照会するにはどうすればよいですか?

複数テーブルのマージを有効にすると、DTS は宛先テーブルに __dts_data_source 列 (テキスト型) を自動的に追加してデータソースを記録します。この列を照会するには、次の構文を使用します:

SELECT __dts_data_source FROM <destination_table_name>;

返される値は DTS インスタンス ID:データベース名:スキーマ名:テーブル名 の形式になります。例: dts:dtstestdata:testschema:customer1

「Column cannot be resolved」エラーでクエリが失敗する場合

このエラーが発生した場合は、次の項目を確認してください:

  1. DTS タスクで複数テーブルのマージが有効になっているかどうか。複数テーブルのマージが有効になっていない場合、宛先テーブルには __dts_data_source 列は含まれません。

  2. ソースデータベースではなく、宛先データベースを照会しているかどうか。

  3. 列名が単一アンダースコアではなく、二重アンダースコアのプレフィックス (__dts_data_source) を使用しているかどうか。