Data Transmission Service (DTS) タスクで同期または移行するオブジェクトを構成する場合、オブジェクト名マッピング機能を使用して、同期先インスタンスに移行するデータベース、テーブル、および列の名前を変更できます。 この機能を使用して、ターゲットインスタンスでデータを同期または移行するデータベースまたはテーブルを指定できます。 ターゲットデータベースのソースオブジェクトと同じスキーマを持つオブジェクトを作成し、オブジェクトに別の名前を割り当てることもできます。
シナリオ
シナリオ | 説明 |
ターゲットデータベースにデータを受信するオブジェクトを作成します。 |
|
データを受信するターゲットデータベース内のオブジェクトを指定します。 たとえば、複数のデータベースまたはテーブルのデータを1つの大きなデータベースまたはテーブルに同期または移行したいとします。 | データを受け取り、データの互換性を確保するには、事前にターゲットデータベースにオブジェクトを作成する必要があります。
|
ターゲットデータベースにオブジェクトを作成します。 | このシナリオは、データ移行タスクでのみサポートされます。 移行タイプ パラメーターには、スキーマ移行 のみを選択する必要があります。 |
前提条件
DTSタスクは オブジェクト設定 ステップにあり、オブジェクト名マッピング機能が必要です。 オブジェクト設定 手順の詳細については、「データ同期シナリオの概要」および「データ移行シナリオの概要」をご参照ください。
移行タイプ または 同期タイプ パラメーターに、サポートされているすべての移行または同期タイプを選択することを推奨します。 そうしないと、移行または同期の結果が期待に合わない場合があります。
以前のバージョンのタスク設定ページを使用する場合、DTSタスクは オブジェクトの設定と詳細設定 ステップにある必要があります。
制限事項
DTSタスクの開始後は、オブジェクト名マッピング機能を使用しないことをお勧めします。 そうしないと、データ損失が発生したり、タスクが失敗したりします。
ターゲットインスタンスがTairまたはApsaraDB for Redisインスタンスの場合、データベース名マッピング機能のみを使用して、DB 0からDB 255までの1つ以上のデータベースを選択し、データを受信できます。
ソースデータベースのタイプがTair/Redisの場合、一度に複数の名前をマップすることはできません。
ターゲットデータベースのタイプがDataHubの場合、データベース名マッピング機能は使用できません。
ターゲットデータベースのデータベースタイプがKafkaで、オブジェクト名マッピング機能を使用して、ソーステーブルのテーブル名パラメーターの値をターゲットデータベースのトピックの名前に変更した場合、テーブルのデータは指定されたトピックに書き込まれます。 テーブル名パラメーターが、ターゲットKafkaデータベースに存在するトピックの名前に設定されていることを確認します。 それ以外の場合、DTSタスクは失敗します。
同期または移行するオブジェクトとしてデータベース全体を選択した場合、マップできるのはデータベース名のみです。
次のシナリオでは、テーブルまたは列のオブジェクト名マッピング機能を使用できます。ソースデータベースのデータベースタイプはMongoDBで、同期または移行するオブジェクトとしてコレクションが選択されます。 ソースデータベースのデータベースタイプはTair/Redisで、同期または移行するオブジェクトとしてデータベースが選択されています。 ソースデータベースのデータベースタイプがMongoDBまたはTair/Redisではなく、同期または移行するオブジェクトとしてテーブルが選択されています。
オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、オブジェクトに依存するオブジェクトが同期または移行されない場合があります。
単一のオブジェクトの名前をマップする
ソースオブジェクト セクションから 選択中のオブジェクト セクションにオブジェクトを移動します。
[テーブルの編集] または [スキーマの編集] ダイアログボックスを開きます。
選択中のオブジェクト セクションで、オブジェクトを右クリックします。
オブジェクトの上にポインタを移動し、編集 をクリックします。
表示されるダイアログボックスで、ターゲットインスタンスで使用するオブジェクト名を設定します。
説明一部のインスタンスでオブジェクト名マッピング機能を使用する場合、追加の列を宛先テーブルに追加したり、同期または移行するDDLステートメントとDMLステートメントを選択したりすることもできます。 コンソールに表示される実際の情報が優先されます。
データベース名マッピングとテーブル名マッピングで異なるステートメントを選択した場合、テーブル名マッピングで選択したステートメントが優先されます。
テーブルの編集 ダイアログボックスで、データをフィルタリングする条件を指定できます。 詳細については、「フィルター条件の指定」をご参照ください。
データベース名マッピング
スキーマの編集 ダイアログボックスで、ターゲットインスタンスで使用するデータベース名を設定します。
説明ソースデータベースとターゲットデータベースのタイプが両方ともSQL Serverの場合、[編集] をクリックすると、データベース名の編集 ダイアログボックスが表示されます。
テーブル名マッピング
テーブルの編集 ダイアログボックスで、ターゲットデータベースで使用するテーブル名を指定します。
列名マッピング
テーブルの編集 ダイアログボックスで、[列] セクションの すべてのテーブルを同期 をオフにし、ターゲットインスタンスで使用する列名を設定します。
説明列名を変更したら、列名の横にあるアイコンの上にポインターを移動して、元の名前を表示できます。
OKをクリックします。
DTSタスクに必要なその他のパラメーターを設定します。
一度に複数のオブジェクト名をマップする
複数のオブジェクトを ソースオブジェクト セクションから 選択中のオブジェクト セクションに移動します。
選択中のオブジェクト セクションの右上隅にある 一括編集 をクリックします。
一括編集 ダイアログボックスで、ビジネス要件に基づいてデータベース、テーブル、および列の名前をマップします。
バッチ編集の種類を選択します。 この例では、選択したすべてのデータベースとテーブル が選択されています。
オブジェクトを選択 セクションで、管理するオブジェクトを選択します。
編集タイプの選択 セクションの オブジェクト名 タブをクリックします。
説明一部のインスタンスでバッチマッピング機能を使用する場合、追加の列を宛先テーブルに追加したり、同期または移行するDDLステートメントとDMLステートメントを選択したりすることもできます。 コンソールに表示される実際の情報が優先されます。
バッチ編集の範囲を選択します。
名前変更済みオブジェクト名の編集: データベース、テーブル、および列の名前を名前の変更に基づいて編集します。
元の名前の編集: 元の名前に基づいて、データベース、テーブル、および列の名前を編集します。
次のいずれかのルールを選択し、ルールに基づいてデータベースとテーブルの名前を設定します。
プレフィックスとサフィックスの追加: ルールを選択 ドロップダウンリストから プレフィックスとサフィックスの追加 を選択し、プレフィックスとサフィックスを入力します。
すべての名前を変更する: ルールを選択 ドロップダウンリストから すべての名前の変更 を選択し、新しい名前を入力します。
すべての名前を短くする: ルールを選択 ドロップダウンリストから すべての名前を短縮 を選択し、オブジェクト名から削除するキーワードを入力します。
アプリケーション をクリックして、バッチマッピングルールを追加します。
[OK] をクリックします。
DTSタスクに必要なその他のパラメーターを設定します。
テーブルの特定の列の同期または移行
同期または移行するテーブルを ソースオブジェクト セクションから 選択中のオブジェクト セクションに移動します。
選択中のオブジェクト セクションでテーブルを右クリックします。
テーブルの編集 ダイアログボックスの [列] セクションで、すべてのテーブルを同期 をオフにします。
同期または移行しない列の選択を解除します。
OKをクリックします。
DTSタスクに必要なその他のパラメーターを設定します。
よくある質問
Q: 同期または移行する必要のない列をフィルタリングするにはどうすればよいですか?
A: [選択済みオブジェクト] セクションでテーブルを右クリックします。 [テーブルの編集] ダイアログボックスの [列] セクションで、すべてのテーブルを同期 をオフにし、同期または移行する必要のない列の選択を解除します。
Q: 列名マッピング機能を使用して列のタイプを変更できますか?
A: いいえ。列名マッピング機能を使用して列のタイプを変更することはできません。
Q: 追加後にバッチマッピングルールを変更できますか?
A: いいえ。追加後にバッチマッピングルールを変更することはできません。 ルールの横にあるアイコンをクリックすると、ルールを削除できます。 ルールが削除されたら、新しいルールを追加します。
Q: 設定後にバッチマッピングルールを表示できないのはなぜですか?
A: ルールを設定した後、アプリケーション をクリックしないか、誤ってルールを削除する可能性があります。