MAP per estrazione
Valido per
Extract
Descrizione
È inoltre possibile utilizzare MAP in un file dei parametri Extract per modificare il nome delle transazioni memorizzate da Oracle GoldenGate per la tabella.
Si consideri ad esempio l'acquisizione della tabella scott.emp. Per il primo caso d'uso, lo si acquisisce per applicare tutte le modifiche alla tabella antera denominata scott.emp con la stessa struttura, ma si desidera anche acquisire scott.emp con un set di colonne diverso e replicarlo in una tabella denominata scott.emp_old. Per fare questo lavoro, avrai bisogno di un file di parametri Extract simile a questo:
TABLE scott.emp;
MAP scott.emp,
cols(emp_no, employee_name),
target scott.emp_old;
In Replicat è possibile effettuare le operazioni riportate di seguito.
MAP *.*, target *.*;
E le modifiche da scott.emp andrebbero in scott.emp, i dati di trail per scott.emp_old andrebbero in scott.emp_old.
Utilizzare il parametro MAP per Extract quando Extract funziona in modalità di acquisizione classica ed è necessario utilizzare il componente ALTID di questo parametro per mappare un oggetto ID a un nome oggetto. ALTID specifica l'oggetto corretto ID se Extract acquisisce dai log delle transazioni Oracle generati da un database diverso da quello a cui è connesso Extract. Questa configurazione è necessaria quando Extract non è autorizzato a connettersi direttamente al database di produzione (origine) per acquisire le transazioni di produzione.
Quando Extract non è in grado di connettersi direttamente a un database di origine, si connette a un database in standby attivo o ad altro facsimile, ma legge i log delle transazioni inviati dal database di origine. Eseguendo una query sul catalogo del database alternativo, Extract può ottenere i metadati necessari per espandere i dati della transazione in istruzioni SQL valide, ma non può utilizzare l'oggetto ID da questa query. L'oggetto locale ID per una tabella è diverso dall'oggetto ID di tale tabella nel database di origine (e, quindi, nel log delle transazioni). È necessario mappare manualmente ogni nome di tabella all'oggetto di origine ID utilizzando un'istruzione MAP con ALTID.
Per usare MAP con ALTID
-
Creare un'istruzione
MAPconALTIDper ogni tabella che si desidera acquisire. I nomi delle tabelle con caratteri jolly non sono consentiti per un parametroMAPcontenenteALTID. -
Per specificare un'altra elaborazione per la stessa tabella (o le stesse tabelle), ad esempio il filtro o la manipolazione dei dati, è inoltre necessario creare un'istruzione
TABLEper ciascuna di tali tabelle. I caratteri jolly possono essere utilizzati per specificare più tabelle con una sola istruzioneTABLE, se necessario. -
Utilizzare una normale istruzione Replicat
MAPnel file dei parametri Replicat, come al solito.MAPper Extract non sostituisceMAPper Replicat, necessario per mappare le tabelle di origine alle tabelle di destinazione. -
Acquisizione e replica
DDLnon supportate quando si utilizzaALTID.
Predefinito
Nessuno
Sintassi
MAP *[<container>.]<schema>.*<table>, ALTID <object_ID> [, <object_ID>]
[<container>.]<schema.table>
Nome completamente qualificato della tabella di origine.
<object_ID>
L'oggetto ID della tabella esistente nel database di produzione (origine).
Se una tabella è partizionata, è possibile elencare gli ID oggetto delle partizioni che si desidera replicare, separandoli con una virgola.
Esempi
Esempio 1
In questo esempio viene mappata una tabella non partizionata o solo una partizione di una tabella partizionata.
MAP QASOURCE.T2, ALTID 75740;
Esempio 2
Questo esempio mappa le partizioni di una tabella partizionata.
MAP QASOURCE.T_P1, ALTID 75257,75258;