4 マッピング・グループの操作
トピック:
4.1 マッピング・グループの理解
Oracle GoldenGate Studioで、マッピング・グループという用語は、ソースおよびターゲットの表マッピングと、フィルタリングや競合検出ルールなどの関連レプリケーション・ロジックのコレクションを説明するために使用します。最初に、リソース・ナビゲータからマッピング・エディタに、表をドラッグ・アンド・ドロップ(またはキーボード・ショートカットを使用して追加)する必要があります。次に、「自動マップ」オプションを使用して「ソース」と「ターゲット」間の表マッピングの関連付けを自動的に生成するか、「ソース」から「ターゲット」および「ターゲット」から「ソース」のドラッグ・アンド・ドロップ操作またはキーボード・ショートカットを使用します。また、マッピングでは、ワイルドカード文字(*)をスキーマおよび表レベルで使用できます。スキーマ名をドラッグ・アンド・ドロップすると、自動的にワイルドカードが使用され、すべての表が指定されます。ワイルドカード・ロジックの詳細は、『Oracle GoldenGateリファレンス』を参照してください
Oracleマルチテナント・サポートでは、スキーマ名を手動で編集してプラガブル・データベース名を含める必要があり、データベース接続のメタデータのみが使用されます。これは、マッピング・グループが、複数のレプリケーション・パスに割り当てることのできる論理的な構成要素であることを意味します。ソリューションに対してローカルなマッピング・グループは、そのソリューションの任意のレプリケーション・パスに関連付けることができますが、グローバル・リソース・ライブラリに存在するグローバル・マッピング・グループは、すべてのプロジェクトにわたるソリューションの任意のレプリケーション・パスで使用できます。マッピング・グループが変更されると、そのマッピング・グループを参照しているすべてのレプリケーション・パスにその変更が反映されます。複数のマッピング・グループを1つのレプリケーション・パスに割り当てることができます。
たとえば、中央データ・ウェアハウスにレポートされる同じアプリケーション・スキーマを持つ100個のストアがある場合、そのマッピング・グループを一度定義するのみで、100個のすべてのレプリケーション・パスに適用できます。そのマッピング・グループの変更は、一度行うのみで、100個のすべてのレプリケーション・パスに反映されます。
4.1.1 スキーマおよび表マッピング
スキーマは、他のスキーマに直接マップされません。スキーマ内の表は、他の表にマップされます。スキーマ内のすべての表をマップするには、グローバル・リソース・ライブラリで表を強調表示し、それらをマッピング・エディタにドラッグ・アンド・ドロップするか、スキーマ名をドラッグ・アンド・ドロップして、すべての表にワイルドカード(*)を使用します。DDLをレプリケートして新しい表を取得する場合、常にワイルドカードを使用します。スキーマ名にはワイルドカードを使用できます。ただし、スキーマ名にワイルドカードを使用しても、一部のシステム・スキーマは自動的に除外されます。ワイルドカードの使用時に暗黙的に除外されるスキーマ名を表示するには、Oracle GoldenGateの管理のhttps://www.oracle.com/pls/topic/lookup?ctx=en/middleware/goldengate/studio/12.2.1.4/ggsug&id=GWUAD-GUID-46CAAFC3-DCA5-4A20-9C60-8939EBD87E83を参照してください。スキーマ名にワイルドカードを使用する場合、暗黙的に除外されるスキーマは、明示的にスキーマ名をリストすることでオーバーライドできます。
表またはワイルドカードをマップするため、「自動マップ」ボタンをクリックすると、表名が同じであれば、それらが異なるスキーマにあるかどうかにかかわらず、マップされていないターゲット表がソース表にマップされます。別の方法として、マッピング・エディタで、ソース表名とターゲット表名を相互にドラッグ・アンド・ドロップして、関連付けを作成できます。
表がマップされると、「ソース」の表名が「ターゲット」列の「マップ元」に表示されます。この列にリストされるのはソース表名のみですが、ツールチップにソース・スキーマ名が表示されます。ターゲット表名またはマップ元表名をダブルクリックすると、列マッピング・エディタに移動します。
プラガブル・データベースを使用するには、まずプラガブル・データベース名を指定し、次にスキーマ名を<PDB>.<SCHEMA>
という形式で指定します。あるプラガブル・データベースのReplicatプロセスを別のデータベースで使用するには、ExtractおよびReplicatプロセスのプロパティ・インスペクタでsourcecatalog
パラメータを編集する必要があります。複数のプラガブル・データベースでReplicatプロセスを使用するには、マッピング・エディタ・スキーマを編集して、レプリケーション・プロセス用のプラガブル・データベース名を追加する必要があります。
Oracle Data Pumpレプリケーションは、通常、データベース、表領域、スキーマおよび表タイプを使用して実行されます。現在、表タイプのみがサポートされます。この場合、ソースとターゲット両方のスキーマ名に加え、表名が必要です。
スキーマおよび表マッピング・エディタで、マッピング、ソース表およびターゲット表全体のプロパティとロジックを定義できます。次の図および表に、マッピング・エディタでクリックした場所に応じて編集できるプロパティを示します。
注意:
ワイルドカード・マッピングは、Oracle Data Pumpではサポートされません。デプロイメント中にエラーは表示されませんが、ターゲット側のデータはロードされません。図4-1 スキーマおよび表マッピング
ID | UI要素 | プロパティ |
---|---|---|
1 |
マップ・ブレッドクラム |
名前と説明、DDLレプリケーション、グローバル列マッチング、DML変換およびグローバル・レプリケーション・エラー・レスポンス。 |
2 |
ソース・スキーマ名 |
データベース名、スキーマ名およびソース取得からのスキーマの除外。スキーマの除外は、すべてのスキーマに対してワイルドカードを使用しているが、そうするとワイルドカードに含まれることになる特定のスキーマを明示的に除外する場合に使用します。 |
3 |
ソース表名 |
表名、ソース取得からの表の除外、フィルタ、WHERE句、カスタムSQL実行、イベント・アクションおよび追加のカスタム・プロパティ。表名は128文字以下です。 |
4 |
ターゲット・スキーマ名 |
ターゲット・スキーマ名とターゲット適用からのスキーマの除外。 |
5 |
ターゲット表名とマップ元 |
ターゲット・スキーマ名とターゲット適用からの表の除外、例外ハンドリング、フィルタ、DML変換、WHERE句、表固有のレプリケーション・エラー・レスポンス、カスタムSQL実行、調整適用スレッド(可能な場合)、調整適用スレッド範囲(可能な場合)、イベント・アクション、詳細設定および追加のカスタム・プロパティ。 表名は128文字以下です。 |
ソース側で表を除外すると、ソース側でtableexclude
パラメータが書き込まれますが、対応するMAP文はターゲット側に書き込まれません。同様に、ターゲット側で表を除外すると、ターゲット側でmapexclude
パラメータが書き込まれますが、対応するTABLE文はソース側に書き込まれません。
注意:
複数の表をマップしている場合、列マッピングにドリルして表名を選択し、除外プロパティ以外のすべてのプロパティを編集する必要があります。これにより、異なる表に異なるロジックを適用できます。
4.1.2 列マッピング
表マッピング・エディタから列マッピングに移動できます。ターゲット表名または「マップ元」列をダブルクリックするか、表名を含むターゲット行の任意の場所を右クリックして、コンテキスト・メニューから「列マッピングの編集」を選択します。
Oracle GoldenGateランタイム・エンジンによって、一致する列名が自動的にマップされるため、列マッピングは不要です。列マッピングは、表マッピングと同じ方法で動作し、自動マップやソースとターゲット間でのドラッグ・アンド・ドロップを使用できます。
列マッピング・エディタで、ソースとターゲットの表および列のプロパティとロジックを定義できます。次の図および表に、マッピング・エディタでクリックした場所に応じて編集できるプロパティを示します。これには、複数の表がターゲット表にマップされている場合に個々の表マッピングを選択する方法と、スキーマおよび表マッピング・エディタに復帰する方法も示されています。
注意:
1つのソース表のみがターゲット表にマップされている場合に、列マッピング・エディタの表名を選択すると、スキーマおよび表マッピング・エディタで表名をクリックしたときと同じオプションが提供されます。
図4-2 列マッピング
ID | UI要素 | プロパティ |
---|---|---|
1 |
マッピング・グループ名を示すマップ・ブレッドクラム |
ここで選択をすると、スキーマおよび表マッピング・エディタに戻ります。 |
2 |
表マッピング名を示すマップ・ブレッドクラム |
複数のソース表がこのターゲット表にマップされている場合、ここで選択をすると、それらの他のマッピングのドロップダウン・リストが表示され、それらに移動できます。 |
3 |
ソース表名 |
表名、ソース取得からの表の除外、フィルタ、WHERE句、カスタムSQL実行、イベント・アクションおよび追加のカスタム・プロパティ。 |
4 |
ソース列名 |
列名、ソース取得からの列の除外、主キー(の一部)としての列使用の強制。 |
5 |
ターゲット表名 |
ターゲット表名、ターゲット適用からの表マッピングの除外、キーとしての特定列使用の強制、例外ハンドリング、競合検出、競合解決、フィルタ、DML変換、WHERE句、表固有のレプリケーション・エラー・レスポンス、カスタムSQL実行、調整適用スレッド(可能な場合)、調整適用スレッド範囲(可能な場合)、イベント・アクション、詳細設定および追加のカスタム・プロパティ。 |
6 |
ターゲット列名とマップ元 |
列名、(ソース列名またはカスタム・ロジックを含むことのできる)マップ元、主キー(の一部)としての列使用の強制、更新の競合検出用の列の有効化、および削除の競合検出用の列の有効化。 |
注意:
主キー列のオーバーライド、競合検出および競合解決は、列マッピング・エディタにのみ表示されます。
4.3 マッピング・グループのレプリケーション・パスへの割当て
マッピング・グループは、ソリューション・エディタで割り当てます。ローカルまたはグローバル・マッピング・グループをレプリケーション・パスに割り当てるには、プロジェクト・ナビゲータまたはグローバル・リソース・ライブラリからマッピング・グループをドラッグし、ソリューション・エディタでレプリケーション・パスまたはデータ・サーバーにドロップします。マッピング・グループは、データ・サーバーにドロップすると、そのデータ・サーバーに接続しているすべてのレプリケーション・パスに自動的に関連付けられます。レプリケーション・パスの矢印にドロップすると、関連付けはそのパスのみが対象となります。同じマッピング・グループをドラッグして、複数のパスおよびデータ・サーバーにドロップできます。これらの関連付けは、参照に基づいており、コピーではありません。マッピング・グループに対する変更は、そのマッピング・グループに関連付けられたすべてのレプリケーション・パスに自動的に反映されます。
マッピング・グループをレプリケーション・パスから削除する場合、ソリューション・エディタやプロパティ・インスペクタでレプリケーション・パスを選択すると、レプリケーション・パスのすべてのマッピング関連付けのリストが表示されます。目的のマッピング・グループの名前を選択して、赤い「X」アイコンをクリックして削除します。確認のダイアログが表示されます。
レプリケーション・パスのプロパティ・インスペクタにある緑色の「+」アイコンでは、マッピング・グループとレプリケーション・パス間の関連付けを追加する代替方法が提供されます。「+」アイコンを選択すると、ダイアログ・ボックスを通じて、そのレプリケーション・パスにローカルおよびグローバル・マッピングの関連付けを追加できます。
4.4 マッピング・グループのコピーおよび共有
ローカル・ソリューション・マッピング・グループを右クリックすると、それをグローバル・リソース・ライブラリにコピーするオプション、および同じソリューション内にその選択のコピーを作成する(複製する)オプションが表示されます。グローバル・マッピング・グループを右クリックして、共有環境の外部にいる他のOracle GoldenGateユーザーがインポートできるXMLファイルにエクスポートできます。マップのエクスポート・ダイアログでは、キャラクタ・セットと暗号化の設定がサポートされます。
エクスポートされたローカルとグローバル両方のマッピング・グループをインポートするには、プロジェクト・ナビゲータで右クリック・オプションを使用して適切なマッピング・グループ・ノードを選択し、「インポート」を選択します。
各種のインポート・タイプは、次のとおりです。
-
複製: このモードでは、新しい内部IDを持つ新しいオブジェクトが作成されます。
-
シノニム・モード
INSERT
: このモードでは、同じ内部IDを持つ同じオブジェクトの挿入が試行されます。 -
シノニム・モード
UPDATE
: このモードでは、同じ内部IDを持つ同じオブジェクトの変更が試行されます。 -
シノニム・モード
INSERT_UPDATE
: 同一のIDを持つオブジェクトがターゲット・リポジトリに存在しない場合、このインポート・モードでは、エクスポート・ファイルの内容を含む新しいオブジェクトが作成されます。同一のIDを持つ既存のオブジェクトは更新されます。