Data Transmission Service (DTS) はオブジェクト名マッピングをサポートしています。この機能を使用すると、宛先インスタンスのオブジェクト名を変更できます。このトピックでは、データ移行タスクを設定する際にオブジェクト名マッピングを使用する方法について説明します。
制限事項
- オブジェクト名マッピングは、データ移行タスクを設定する際の [移行タイプとオブジェクト] ステップでのみ利用可能です。説明 データ移行タスクの開始後にオブジェクト名マッピングを実行しないでください。実行すると、移行タスクが失敗する可能性があります。
- MongoDB データベースの場合、サポートされているのはデータベース名マッピングとコレクション名マッピング (テーブル名マッピングに相当) のみです。
個別のオブジェクト名のマッピング
- [移行タイプとオブジェクト] ステップで、移行するオブジェクトを [選択済み] ボックスに移動します。変更したいデータベース名またはテーブル名にカーソルを合わせ、編集 ボタンをクリックします。重要 サポートされるオブジェクトは、ソースデータベースによって異なります。
- ダイアログボックスで、オブジェクトの移行先での名前を設定します。説明
- ソースデータベースとターゲットデータベースがセルフマネージド MySQL、ApsaraDB RDS for MySQL、または PolarDB for MySQL の場合、データベース名またはテーブル名をマッピングする際に、データ定義言語 (DDL) 文とデータ操作言語 (DML) 文をフィルタリングすることもできます。同期する特定の DDL 文または DML 文を選択できます。
- データベース名マッピングとテーブル名マッピングで選択した文が競合する場合、テーブル名マッピングの設定が優先されます。
- データベース名マッピング
データベース名の編集 ダイアログボックスで、移行先のデータベース名を設定します。
たとえば、データベース名をdtstestdataからdtstestdatanewに変更できます。[DML & DDL フィルタリング] セクションで、同期する DML 操作 (insert、update、delete など) と DDL 操作 (テーブル、ビュー、プロシージャ、トリガー、関数、インデックスに対する CREATE、ALTER、DROP など) を選択します。その後、[OK] をクリックします。 - テーブル名マッピング
テーブルの編集 ダイアログボックスで、移行先のテーブル名を設定します。
[データベーステーブル名] フィールドに、移行先のテーブル名を入力します (たとえば、元のテーブルtest1をtestnewに変更)。標準 SQL の WHERE 句をサポートするフィルター条件も設定できます。[構文の検証] をクリックしてクエリを確認します。[DML & DDL フィルタリング] セクションで、同期する DML (insert、update、delete) と DDL (テーブル、ビュー、プロシージャ、トリガー、関数、インデックスに対する CREATE、ALTER、DROP) の操作タイプを選択します。 - 列名マッピング
テーブルの編集 ダイアログボックスで、移行先の列名を設定します。
たとえば、列areaをareanewに変更できます。列名を変更すると、入力ボックスの上に元の列名を示す赤いツールチップが表示されます。説明 このステップでは、移行したくない列のチェックボックスをオフにすることで、それらの列を除外することもできます。
- OK をクリックします。
- プロンプトに従ってタスク設定を完了します。
複数オブジェクト名の一括マッピング
- [移行タイプとオブジェクト] ステップで、移行するオブジェクトを [選択済み] ボックスに移動します。重要 最後に選択したオブジェクトがデータベースの場合、バッチ名マッピング機能は利用できず、[オブジェクト名の一括変更] オプションは無効になります。
- ページ下部の [オブジェクト名の一括変更] をクリックし、次に 詳細設定 をクリックします。
- 詳細設定 ページで、テーブル名と列名のバッチマッピングルールを設定します。
- ルールの範囲を選択します。この例では [部分的な選択] を使用します。重要 部分選択 を選択すると、データベース名またはテーブル名のキーワードを入力して、ルールの対象となるオブジェクトをフィルタリングできます。
- ルールを選択して設定します。
- ルールの追加 をクリックします。重要 これらの手順を繰り返して、異なるテーブルに異なるルールを設定できます。
- プレビュー をクリックして、ルールが期待どおりに機能することを確認します。詳細設定ページでは、[ソーステーブルのキーワード] フィールドを使用してテーブルをフィルタリングし、[すべて名前変更] などのルールタイプや、プレフィックスまたはサフィックスを追加するルールを選択し、[名前] フィールドに値を入力できます。たとえば、ルール 1 が
customerテーブルにプレフィックスtest_を追加し、ルール 2 がorderテーブルをneworderに名前変更するとします。[プレビュー] をクリックすると、部分プレビューテーブルに、dtstestdataソースデータベースのcustomerテーブルとorderテーブルが、それぞれ移行先データベースのtest_customerとneworderにマッピングされることが表示されます。 - [部分プレビュー]
タブで、移行先データベース セクションのデータベース名の横にある アイコンをクリックし、次に [列名とフィルター条件の変更] をクリックします。 - 列名マッピングルールを設定し、OK をクリックします。たとえば、[プレフィックス/サフィックスの追加] を選択し、プレフィックス入力ボックスに
test_と入力し、その行の [OK] をクリックしてマッピングルールを生成できます。ルールが適用されると、下のテーブルのターゲット列名が自動的にプレフィックスで更新されます (たとえば、addressはtest_addressになります)。重要- デフォルトでは、ルールはすべての列に適用されます。列名のキーワードを入力し、検索 をクリックしてマッピングする列をフィルタリングできます。
- このダイアログボックスでは、移行するデータをフィルタリングするためのフィルター条件も設定できます。構文の詳細については、「フィルター条件の設定」をご参照ください。
- OK をクリックします。
- ルールの範囲を選択します。この例では [部分的な選択] を使用します。
- 設定が完了したら、[事前チェックと開始] をクリックします。
- プロンプトに従ってタスク設定を完了します。