Extract用MAP
有効な対象
Extract
摘要
Extractパラメータ・ファイルでは、Oracle GoldenGateが表に保存するトランザクションの名前を変更するためにMAPを使用することもできます。
たとえば、表scott.empをキャプチャするとします。最初のユース・ケースでは、すべての変更を適用するためにscott.empという同じ構造の別の表にキャプチャしますが、列のセットが異なるscott.empをキャプチャしてscott.emp_oldという表にレプリケートします。これを実現するには、次のようなExtractパラメータ・ファイルが必要になります。
TABLE scott.emp;
MAP scott.emp,
cols(emp_no, employee_name),
target scott.emp_old;
Replicatでは、次を実行できます。
MAP *.*, target *.*;
scott.empの変更はscott.empに移され、scott.emp_oldの証跡データはscott.emp_oldに移されます。
Extract用のMAPパラメータは、クラシック・キャプチャ・モードで動作しているとき、および、このパラメータのALTIDコンポーネントを使用してオブジェクトIDをオブジェクト名にマップする必要があるときに使用します。ALTIDでは、Extractが接続先データベース以外のデータベースによって生成されたOracleトランザクション・ログからExtractが取得する場合に、正しいオブジェクトIDを指定します。この構成は、Extractが、本番環境のトランザクションを取得するために本番環境の(ソース)データベースへの直接接続を許可されていないときに必要です。
Extractは、ソース・データベースに直接接続できないと、ライブ・スタンバイ・データベースまたはその他の複製データベースに接続しますが、本番環境のデータベースから送信されたトランザクション・ログを読み取ります。代替データベースのカタログの問合せによって、Extractは、トランザクション・データを有効なSQL文に展開するために必要なメタデータを取得できます。ただし、この問合せでオブジェクトIDは使用できません。表のローカル・オブジェクトIDは、ソース・データベース内のその表のオブジェクトIDとは異なるため(つまり、トランザクション・ログ内)。ALTIDでMAP文を使用して、各表名をソースのオブジェクトIDに手動でマップする必要があります。
MAPとALTIDの使用方法
-
取得する表ごとに1つの
MAP文とALTIDを作成します。ALTIDが含まれているMAPパラメータでは、表名のワイルドカード指定は許可されていません。 -
同じ表(1つまたは複数)にデータのフィルタリングや操作などの他の処理を指定するには、それぞれの表に対して
TABLE文も作成する必要があります。該当する場合は、ワイルドカードを使用して1つのTABLE文で複数の表を指定できます。 -
Replicatパラメータ・ファイルでは、通常どおり標準のReplicat
MAP文を使用します。Extract用MAPは、ソース表をターゲット表にマップするために必要なReplicat用MAPのかわりには使用できません。 -
DDLを使用するときは、ALTID取得およびレプリケーションはサポートされません。
デフォルト
なし
構文
MAP *[<container>.]<schema>.*<table>, ALTID <object_ID> [, <object_ID>]
[<container>.]<schema.table>
ソース表の完全修飾名。
<object_ID>
本番環境(ソース)データベース内での表のオブジェクトID。
表がパーティション化されている場合は、レプリケートするパーティションのオブジェクトIDをカンマで区切ってリストできます。
例
例1
この例は、パーティション化されていない表、またはパーティション化された表の1パーティションのみをマップします。
MAP QASOURCE.T2, ALTID 75740;
例2
この例は、パーティション表のパーティションをマップします。
MAP QASOURCE.T_P1, ALTID 75257,75258;