MAP für Extraktion
Gültig für
Extrahieren
Beschreibung
Sie können MAP auch in einer Extract-Parameterdatei verwenden, um den Namen der Transaktionen zu ändern, die Oracle GoldenGate für die Tabelle speichert.
Beispiel: Sie erfassen die Tabelle scott.emp. Im ersten Anwendungsfall erfassen Sie sie, um alle Änderungen an einer anderen Tabelle mit dem Namen scott.emp mit derselben Struktur anzuwenden. Sie möchten aber auch scott.emp mit einer anderen Gruppe von Spalten erfassen und in eine Tabelle mit dem Namen scott.emp_old replizieren. Damit dies funktioniert, benötigen Sie eine Extract-Parameterdatei ähnlich der folgenden:
TABLE scott.emp;
MAP scott.emp,
cols(emp_no, employee_name),
target scott.emp_old;
Im Replicat können Sie folgende Schritte ausführen:
MAP *.*, target *.*;
Und die Änderungen von scott.emp würden in scott.emp gehen, die Traildaten für scott.emp_old würden in scott.emp_old.
Verwenden Sie den Parameter MAP für Extract, wenn Extract im klassischen Capture-Modus ausgeführt wird und Sie die Komponente ALTID dieses Parameters verwenden müssen, um ein Objekt ID einem Objektnamen zuzuordnen. ALTID gibt das richtige Objekt ID an, wenn Extract aus Oracle-Transaktionslogs erfasst wird, die von einer anderen Datenbank als der Datenbank generiert wurden, mit der Extract verbunden ist. Diese Konfiguration ist erforderlich, wenn Extract keine direkte Verbindung zur Produktionsdatenbank (Quelldatenbank) zur Erfassung von Produktionstransaktionen herstellen darf.
Wenn Extract keine direkte Verbindung zu einer Quelldatenbank herstellen kann, stellt es eine Verbindung zu einer Live-Standby- oder einer anderen Faksimile-Datenbank her, liest jedoch Transaktionslogs, die von der Quelldatenbank gesendet werden. Wenn Sie den Katalog der alternativen Datenbank abfragen, kann Extract die Metadaten abrufen, die benötigt werden, um die Transaktionsdaten in gültige SQL-Anweisungen einzublenden. Das Objekt ID kann jedoch nicht aus dieser Abfrage verwendet werden. Das lokale Objekt ID für eine Tabelle unterscheidet sich vom Objekt ID dieser Tabelle in der Quelldatenbank (und somit im Transaktionslog). Sie müssen jeden Tabellennamen manuell dem Quellobjekt ID zuordnen, indem Sie eine MAP-Anweisung mit ALTID verwenden.
So verwenden Sie MAP mit ALTID
-
Erstellen Sie eine
MAP-Anweisung mitALTIDfür jede Tabelle, die Sie erfassen möchten. Platzhalter-Tabellennamen sind für einenMAP-Parameter, derALTIDenthält, nicht zulässig. -
Um eine andere Verarbeitung für dieselbe Tabelle (oder Tabellen) anzugeben, z.B. Datenfilterung oder -manipulation, müssen Sie auch eine
TABLE-Anweisung für jede dieser Tabellen erstellen. Mit Platzhaltern können Sie gegebenenfalls mehrere Tabellen mit einerTABLE-Anweisung angeben. -
Verwenden Sie wie gewohnt eine reguläre Replicat
MAP-Anweisung in der Replicat-Parameterdatei.MAPfür Extract ersetzt nichtMAPfür Replicat, das zum Zuordnen von Quelltabellen zu Zieltabellen erforderlich ist. -
Erfassung und Replikation von
DDLwerden bei Verwendung vonALTIDnicht unterstützt.
Standard
Keine
Syntax
MAP *[<container>.]<schema>.*<table>, ALTID <object_ID> [, <object_ID>]
[<container>.]<schema.table>
Der vollqualifizierte Name der Quelltabelle.
<object_ID>
Das Objekt ID der Tabelle, wie es in der Produktionsdatenbank (Quelldatenbank) vorhanden ist.
Wenn eine Tabelle partitioniert ist, können Sie die Objekt-IDs der Partitionen auflisten, die Sie replizieren möchten, wobei jede durch ein Komma getrennt wird.
Beispiele
Beispiel 1
In diesem Beispiel wird eine nicht partitionierte Tabelle oder nur eine Partition einer partitionierten Tabelle zugeordnet.
MAP QASOURCE.T2, ALTID 75740;
Beispiel 2
In diesem Beispiel werden Partitionen einer partitionierten Tabelle zugeordnet.
MAP QASOURCE.T_P1, ALTID 75257,75258;