Oracle GoldenGate Studioでは、ソースとターゲットの表マッピングと、それに関連するレプリケーション・ロジック(フィルタリングや競合解決ルールなど)のコレクションを説明するために、「マッピング・グループ」という用語を使用します。まず、リソース・ナビゲータからマッピング・エディタに表をドラッグ・アンド・ドロップするか、キーボードのショートカットを使用して追加する必要があります。次に、ソースとターゲットの表マッピングの関連付けを、Automapを使用して自動的に生成するか、ソースからターゲットおよびターゲットからソースにドラッグ・アンド・ドロップするか、またはキーボードのショートカットを使用して作成することができます。また、スキーマおよび表レベルのマッピングでは、ワイルドカード文字(*)を使用できます。スキーマ名をドラッグ・アンド・ドロップする場合は、自動的にワイルドカードが使用され、すべての表が含まれます。ワイルドカードのロジックの詳細は、Oracle GoldenGateのリファレンス・マニュアルを参照してください。Oracleマルチテナントをサポートする場合は、プラガブル・データベース名が含まれるように手動でスキーマ名を編集する必要があります。
マッピング・グループを作成するときに使用されるのは、データベース接続のメタデータのみです。つまり、マッピング・グループは複数のレプリケーション・パスに割り当てることのできる論理構造です。ソリューションにローカルのマッピング・グループは、そのソリューションの任意のレプリケーション・パスに関連付けることができますが、グローバル・リソース・ライブラリにあるグローバル・マッピング・グループは、すべてのプロジェクトに共通して任意のソリューションの任意のレプリケーション・パスに使用できます。マッピング・グループを変更すると、その変更はそのマッピング・グループを参照しているすべてのレプリケーション・パスで反映されます。複数のマッピング・グループを、1つレプリケーション・パスに割り当てることができます。
たとえば、同じアプリケーション・スキーマのストア100個が中央のデータ・ウェアハウスに返信する場合、そのマッピング・グループを1回定義するだけで、100個すべてのレプリケーション・パスに適用できます。マッピング・グループに対する変更も、1回行うだけで、100個すべてのレプリケーション・パスに反映されます。
スキーマは、他のスキーマに直接マップされるわけではありません。スキーマの表が他の表にマップされます。1つのスキーマの表をすべてマップするには、グローバル・リソース・ライブラリですべての表を選択して、マッピング・エディタにドラッグ・アンド・ドロップすることもできますが、スキーマ名をドラッグ・アンド・ドロップすれば、ワイルドカード(*)ですべての表が選択されます。DDLを複製する場合に、新しい表をキャプチャするときは、常にワイルドカードを使用してください。ワイルドカードは、スキーマ名でも使用できます。ただし、スキーマ名にワイルドカードを使用する場合、システム・スキーマの一部が自動的に除外されます。ワイルドカードを使用したときにどのスキーマ名が暗黙的に除外されるかについては、データベースごとのOracle GoldenGateインストール・マニュアルを参照してください。スキーマ名にワイルドカードを使用するときには、暗黙的に除外されるスキーマより、明示的に指定したスキーマ名が優先されます。
表またはワイルドカードをマップする場合に「Automap」ボタンをクリックすると、スキーマが違っていても表の名前が同じ場合、マップされていないターゲット表がソース表にマップされます。あるいは、マッピング・エディタでソースとターゲットの表名を相互にドラッグ・アンド・ドロップして関連を作成することもできます。
表がマップされると、「Source」表の名前が「Target」の「Mapped From」列に表示されます。この列には「Source」表の名前しか表示されませんが、ツール・チップにはスキーマ名も表示されます。「Target」表名または「Mapped From」表名をダブルクリックすると、列マッピング・エディタに移動します。
スキーマと表のマッピング・エディタでは、マッピング全体、ソース表およびターゲット表についてプロパティとロジックを定義できます。マッピング・エディタでクリックした場所に応じてどのプロパティを編集できるのかを、次の表にまとめました。
プラガブル・データベースを使用するには、schema.database
のようにスキーマ名の後にデータベース名を指定した形式に、データベース名を手動で編集する必要があります。1つのプラガブル・データベースのReplicatプロセスを別のプラガブル・データベースで使用するには、ExtractおよびReplicatプロセスのプロパティ・インスペクタでsourcecatalog
パラメータを編集する必要があります。複数のプラガブル・データベースに対してReplicatプロセスを使用するには、マッピング・エディタ・スキーマを編集して、レプリケーション・プロセスにプラガブル・データベース名を追加する必要があります。
通常Oracle Data Pumpのレプリケーションは、データベース、表領域、スキーマおよび表タイプを介して実行されます。表タイプのみが現在サポートされています。ソースとターゲット両方のスキーマ名および表名が必要です。
注意:
ワイルドカード・マッピングは、Oracle Data Pumpではサポートされていません。デプロイメント時にエラーは表示されませんが、ターゲット側のデータがロードされません。図4-1 スキーマと表のマッピング
ID | UI要素 | プロパティ |
---|---|---|
1 |
マップのブレッドクラム |
名前と説明、DDLレプリケーション、グローバル列マッチング、DML変換、グローバル・レプリケーション・エラー・レスポンス。 |
2 |
「Source」のスキーマ名 |
データベース名、スキーマ名、ソース・キャプチャから除外されるスキーマ。除外スキーマは、ワイルドカードですべてのスキーマを指定したが、そのままではワイルドカードによって対象となる特定のスキーマを明示的に除外したいときに使用します。 |
3 |
「Source」の表名 |
表名、ソース・キャプチャから除外される表、フィルタ、WHERE句、カスタムSQL実行、イベント・アクション、追加のカスタム・プロパティ。 |
4 |
「Target」のスキーマ名 |
ターゲット・スキーマ名と、ターゲット適用から除外されるスキーマ |
5 |
「Target」の表名と「Mapped From」 |
ターゲット・スキーマ名と、ターゲット適用から除外される表、例外処理、フィルタ、DML変換、WHERE句、表固有のレプリケーション・エラー・レスポンス、カスタムSQL実行、調整済の適用スレッド(該当する場合)、調整済の適用スレッド範囲(該当する場合)、イベント・アクション、その他の設定、追加のカスタム・プロパティ。 |
ソース側で表を除外すると、tableexclude
パラメータがソース側に書き込まれますが、対応するmap文はターゲット側に書き込まれません。同様に、ターゲット側で表を除外すると、mapexclude
パラメータがターゲット側に書き込まれますが、対応するtable文はソース側に書き込まれません。
注意:
複数の表がマップされている場合は、列マッピングにドリルして表名を選択し、除外プロパティを除くすべてのプロパティを編集する必要があります。こうすると、表ごとに異なるロジックを適用できます。
表マッピング・エディタから列マッピングに移動できます。「Target」の表名、または「Mapped From」列をダブルクリックするか、表名を含むターゲット行の任意の場所を右クリックして、コンテキスト・メニューから「Edit Column Mapping」を選択します。
Oracle GoldenGateランタイム・エンジンによって、一致する列名が自動的にマップされるので、列のマッピングは必要ありません。列マッピングは表マッピングと同じように動作し、ソースとターゲットの間でAutomapとドラッグ・アンド・ドロップを使用できます。
列マッピング・エディタでは、「Source」と「Target」の表および列に対してプロパティとロジックを定義できます。マッピング・エディタでクリックした場所に応じてどのプロパティを編集できるのかを、次の表にまとめました。複数の表が1つのターゲット表にマップされるとき、個々の表マッピングを選択する方法と、スキーマと表のマッピング・エディタに戻る方法についても説明しています。
注意:
列マッピング・エディタで表名を選択したときに表示されるオプションは、1つのソース表のみがターゲット表にマップされているときにスキーマと表のマッピング・エディタで表名をクリックしたときとのオプションと同じです。
図4-2 列マッピング
ID | UI要素 | プロパティ |
---|---|---|
1 |
マッピング・グループ名を示しているマップ・ブレッドクラム |
個々を選択すると、スキーマと表のマッピング・エディタに戻ります。 |
2 |
表マッピング名を示しているマップ・ブレッドクラム |
複数のソース表がこのターゲット表にマップされている場合、ここを選択すると、他のマッピングがドロップダウンでリスト表示され、それに移動できます。 |
3 |
「Source」の表名 |
表名、ソース・キャプチャから除外される表、フィルタ、WHERE句、カスタムSQL実行、イベント・アクション、追加のカスタム・プロパティ |
4 |
「Source」の列名 |
列名、ソース・キャプチャから除外される列、主キー(の一部)として使用される強制列。 |
5 |
「Target」の表名 |
ターゲット表名、ターゲット適用から除外される表、キーとして使用される強制固有の列、例外処理、競合検出、競合解決、フィルタ、DML変換、WHERE句、表固有のレプリケーション・エラー・レスポンス、カスタムSQL実行、調整済の適用スレッド(該当する場合)、調整済の適用スレッド範囲(該当する場合)、イベント・アクション、その他の設定、追加のカスタム・プロパティ。 |
6 |
「Target」の列名と「Mapped From」 |
列名、マップ元(ソース列名またはカスタム・ロジックを含む場合がある)、主キー(の一部)として使用される強制列、この列を有効にして競合解決を更新、この列を有効にして競合検出を削除します。 |
注意:
主キー列のオーバーライド、競合検出、競合解決があるのは、列マッピング・エディタのみです。