プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle GoldenGate Studioの使用
12c (12.2.1.3.0)
E90174-02
目次へ移動
目次

前
次

4 マッピング・グループの操作

ローカルおよびグローバル・マッピング・グループを使用して、Oracle GoldenGate Studioでレプリケーション・オプションを作成、構成、コピーおよび管理する方法について理解します。

トピック:

4.1 マッピング・グループの理解

Oracle GoldenGate Studioで、マッピング・グループという用語は、ソースおよびターゲットの表マッピングと、フィルタリングや競合検出ルールなどの関連レプリケーション・ロジックのコレクションを説明するために使用します。最初に、リソース・ナビゲータからマッピング・エディタに、表をドラッグ・アンド・ドロップ(またはキーボード・ショートカットを使用して追加)する必要があります。次に、「自動マップ」オプションを使用して「ソース」「ターゲット」間の表マッピングの関連付けを自動的に生成するか、「ソース」から「ターゲット」および「ターゲット」から「ソース」のドラッグ・アンド・ドロップ操作またはキーボード・ショートカットを使用します。また、マッピングでは、ワイルドカード文字(*)をスキーマおよび表レベルで使用できます。スキーマ名をドラッグ・アンド・ドロップすると、自動的にワイルドカードが使用され、すべての表が指定されます。ワイルドカード・ロジックの詳細は、『Oracle GoldenGateリファレンス』を参照してください

Oracleマルチテナント・サポートでは、スキーマ名を手動で編集してプラガブル・データベース名を含める必要があり、データベース接続のメタデータのみが使用されます。これは、マッピング・グループが、複数のレプリケーション・パスに割り当てることのできる論理的な構成要素であることを意味します。ソリューションに対してローカルなマッピング・グループは、そのソリューションの任意のレプリケーション・パスに関連付けることができますが、グローバル・リソース・ライブラリに存在するグローバル・マッピング・グループは、すべてのプロジェクトにわたるソリューションの任意のレプリケーション・パスで使用できます。マッピング・グループが変更されると、そのマッピング・グループを参照しているすべてのレプリケーション・パスにその変更が反映されます。複数のマッピング・グループを1つのレプリケーション・パスに割り当てることができます。

たとえば、中央データ・ウェアハウスにレポートされる同じアプリケーション・スキーマを持つ100個のストアがある場合、そのマッピング・グループを一度定義するのみで、100個のすべてのレプリケーション・パスに適用できます。そのマッピング・グループの変更は、一度行うのみで、100個のすべてのレプリケーション・パスに反映されます。

4.1.1 スキーマおよび表マッピング

スキーマは、他のスキーマに直接マップされません。スキーマ内の表は、他の表にマップされます。スキーマ内のすべての表をマップするには、グローバル・リソース・ライブラリで表を強調表示し、それらをマッピング・エディタにドラッグ・アンド・ドロップするか、スキーマ名をドラッグ・アンド・ドロップして、すべての表にワイルドカード(*)を使用します。DDLをレプリケートして新しい表を取得する場合、常にワイルドカードを使用します。スキーマ名にはワイルドカードを使用できます。ただし、スキーマ名にワイルドカードを使用しても、一部のシステム・スキーマは自動的に除外されます。ワイルドカードの使用時に暗黙的に除外されるスキーマ名を確認するには、『Oracle GoldenGateの管理』を参照してください。スキーマ名にワイルドカードを使用する場合、暗黙的に除外されるスキーマは、明示的にスキーマ名をリストすることでオーバーライドできます。

表またはワイルドカードをマップするため、「自動マップ」ボタンをクリックすると、表名が同じであれば、それらが異なるスキーマにあるかどうかにかかわらず、マップされていないターゲット表がソース表にマップされます。別の方法として、マッピング・エディタで、ソース表名とターゲット表名を相互にドラッグ・アンド・ドロップして、関連付けを作成できます。

表がマップされると、「ソース」の表名が「ターゲット」列の「マップ元」に表示されます。この列にリストされるのはソース表名のみですが、ツールチップにソース・スキーマ名が表示されます。ターゲット表名またはマップ元表名をダブルクリックすると、列マッピング・エディタに移動します。

プラガブル・データベースを使用するには、データベース名を手動で編集して、schema.databaseのようにスキーマ名の後がデータベース名となるように指定する必要があります。あるプラガブル・データベースの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.1.3 自動マップ

自動マップ機能によって、類似した名前の表が自動的にマップされます。自動マッピング割当てはソースからターゲットに作成され、逆方向には作成されません。マッピング・ウィンドウは次のように表示されます。

図4-3 自動マップ

自動マップ

4.2 マッピング・グループの作成

新しいローカルまたはグローバル・マッピング・グループを作成するには、次の手順を実行します。

  1. ソリューションに対してローカルなマッピング・グループを作成するには、そのソリューションの下にある「マッピング・グループ」を選択して右クリックし、「新規」を選択します。グローバル・マッピング・グループを作成するには、リソース・ナビゲータで右クリックして「グローバル・マッピング・グループ」を選択します。リソース・ナビゲータにグローバル・マッピング・グループがない場合、リソース・ナビゲータのプラス・アイコン(+ )をクリックし、「グローバル・リソース・ライブラリ」を選択してから「グローバル・マッピング・グループ」を選択します。

    「新しいマッピング・グループの作成」または「新しいグローバル・マッピング・グループ」ウィンドウが開きます。

  2. マッピング・グループの名前とオプションの説明を指定し、「OK」をクリックします。
  3. マッピング・エディタ・ウィンドウが自動的に表示されない場合、プロジェクト・ナビゲータまたはリソース・ナビゲータで新しいマッピング・グループをダブルクリックします。
  4. グローバル・リソース・ライブラリから表を追加するため、それらをライブラリからマッピング・エディタのソースおよびターゲット・ペインにドラッグ・アンド・ドロップします。

    表のリストを選択するには、セットの最初と最後の表を[Shift]を押しながらクリックするか、[Ctrl]を押しながらクリックして個々の表を複数選択するか、またはソースおよびターゲットのマッピング・エディタ・ペインで「+」ボタンを使用してスキーマ名と表名を手動で追加します。列マッピング・エディタでは、同等の「+」ボタンを使用して手動で列を追加できます。

  5. 「ソース」または「ターゲット」ペインの一方から他方のペインに表名またはスキーマ名をドラッグ・アンド・ドロップして、ソースまたはターゲットの表マッピングを作成します。表を空白の領域にドラッグすると、正確に1:1のマッピングが作成されます。表名を一方のペインから他方のペインにドラッグして、他の表名に直接ドロップすると、明示的なマッピングが作成されます。

    たとえば、「ソース」のEMP1表を「ターゲット」のEMP_BACK1にマップする場合、「ソース」のEMP1をドラッグして「ターゲット」のEMP_BACK1にドロップします。マッピングに成功すると、EMP_BACK1EMP1「マップ元」の表として表示されます。

    キーボードを使用して同じ操作を実行することもできます。ソースまたはターゲット・スキーマに特定のリソース・ナビゲータ・スキーマに対する参照が含まれず、名前がリソース・ナビゲータの特定のデータベース名に一致する場合、リソースを関連付けるための確認ダイアログが表示されます。「はい」を選択してマッピングを完了できます。

    マップされていない表をマッピング・エディタでターゲットとして選択すると、プロパティ・インスペクタに「マップ元」テキスト・ボックスが表示されます。有効なソース表参照に対して検証され、ソース表が有効であればターゲット表にマップできるソース表名を入力できます。

  6. 「自動マップ」ボタンを使用して、「ソース」「ターゲット」間で同じ表名のマッピングを自動的に作成することもできます。複数のソース表を複数のターゲット表にマップすることも、複数のソース表を1つのターゲット表にマップすることもできます。

4.3 マッピング・グループのレプリケーション・パスへの割当て

マッピング・グループは、ソリューション・エディタで割り当てます。ローカルまたはグローバル・マッピング・グループをレプリケーション・パスに割り当てるには、プロジェクト・ナビゲータまたはグローバル・リソース・ライブラリからマッピング・グループをドラッグし、ソリューション・エディタでレプリケーション・パスまたはデータ・サーバーにドロップします。マッピング・グループは、データ・サーバーにドロップすると、そのデータ・サーバーに接続しているすべてのレプリケーション・パスに自動的に関連付けられます。レプリケーション・パスの矢印にドロップすると、関連付けはそのパスのみが対象となります。同じマッピング・グループをドラッグして、複数のパスおよびデータ・サーバーにドロップできます。これらの関連付けは、参照に基づいており、コピーではありません。マッピング・グループに対する変更は、そのマッピング・グループに関連付けられたすべてのレプリケーション・パスに自動的に反映されます。

マッピング・グループをレプリケーション・パスから削除する場合、ソリューション・エディタやプロパティ・インスペクタでレプリケーション・パスを選択すると、レプリケーション・パスのすべてのマッピング関連付けのリストが表示されます。目的のマッピング・グループの名前を選択して、赤い「X」アイコンをクリックして削除します。確認のダイアログが表示されます。

レプリケーション・パスのプロパティ・インスペクタにある緑色の「+」アイコンでは、マッピング・グループとレプリケーション・パス間の関連付けを追加する代替方法が提供されます。「+」アイコンを選択すると、ダイアログ・ボックスを通じて、そのレプリケーション・パスにローカルおよびグローバル・マッピングの関連付けを追加できます。

4.4 マッピング・グループのコピーおよび共有

ローカル・ソリューション・マッピング・グループを右クリックすると、それをグローバル・リソース・ライブラリにコピーするオプション、同じソリューション内にその選択のコピーを作成する(複製する)オプション、およびそれをXMLファイル(別のOracle GoldenGate Studioリポジトリへのインポート用のXMLファイル)にエクスポートするオプションが表示されます。グローバル・マッピング・グループを右クリックして、共有環境の外部にいる他のOracle GoldenGateユーザーがインポートできるXMLファイルにエクスポートできます。マップのエクスポート・ダイアログでは、キャラクタ・セットと暗号化の設定がサポートされます。

エクスポートされたローカルとグローバル両方のマッピング・グループをインポートするには、プロジェクト・ナビゲータで右クリック・オプションを使用して適切なマッピング・グループ・ノードを選択し、「インポート」を選択します。

各種のインポート・タイプは、次のとおりです。

  • 複製: このモードでは、新しい内部IDを持つ新しいオブジェクトが作成されます。

  • シノニム・モードINSERT: このモードでは、同じ内部IDを持つ同じオブジェクトの挿入が試行されます。

  • シノニム・モードUPDATE: このモードでは、同じ内部IDを持つ同じオブジェクトの変更が試行されます。

  • シノニム・モードINSERT_UPDATE: 同一のIDを持つオブジェクトがターゲット・リポジトリに存在しない場合、このインポート・モードでは、エクスポート・ファイルの内容を含む新しいオブジェクトが作成されます。同一のIDを持つ既存のオブジェクトは更新されます。