MAP pour extraction
Durée de validité
Extraction
Description
Vous pouvez également utiliser MAP dans un fichier de paramètres d'extraction pour modifier le nom des transactions stockées par Oracle GoldenGate pour la table.
Prenons l'exemple de la capture de la table scott.emp. Pour le premier cas d'utilisation, vous capturez ce dernier afin d'appliquer toutes les modifications à une tablether nommée scott.emp avec la même structure, mais vous voulez également capturer scott.emp avec un ensemble de colonnes différent et le répliquer vers une table nommée scott.emp_old. Pour ce faire, vous aurez besoin d'un fichier de paramètres Extract semblable au suivant :
TABLE scott.emp;
MAP scott.emp,
cols(emp_no, employee_name),
target scott.emp_old;
Dans la réplication, vous pouvez effectuer les opérations suivantes :
MAP *.*, target *.*;
Les modifications apportées par scott.emp passeraient à scott.emp, les données de trace pour scott.emp_old passeraient à scott.emp_old.
Utilisez le paramètre MAP pour le processus Extract lorsque le processus Extract fonctionne en mode de capture classique. Vous devez utiliser le composant ALTID de ce paramètre pour mettre en correspondance un objet ID avec un nom d'objet. ALTID indique l'objet correct ID si l'extraction capture à partir des journaux de transactions Oracle qui ont été générés par une base de données autre que celle à laquelle l'extraction est connectée. Cette configuration est requise lorsque le processus Extract n'est pas autorisé à se connecter directement à la base de données de production (source) pour capturer les transactions de production.
Lorsque le processus Extract ne peut pas se connecter directement à une base de données source, il se connecte à une base de données de secours active ou à une autre base de données de télécopie, mais il lit les journaux de transactions envoyés à partir de la base de données source. En interrogeant le catalogue de la base de données alternative, le processus Extract peut obtenir les métadonnées dont il a besoin pour développer les données de transaction en instructions SQL valides, mais il ne peut pas utiliser l'objet ID de cette requête. L'objet local ID d'une table est différent de l'objet ID de cette table dans la base de données source (et donc dans le journal des transactions). Vous devez mettre en correspondance manuellement chaque nom de table avec l'objet source ID à l'aide d'une instruction MAP avec ALTID.
Pour utiliser le MAP avec l'ALTID
-
Créez une instruction
MAPavecALTIDpour chaque table à capturer. Les noms de table avec caractères génériques ne sont pas autorisés pour un paramètreMAPqui contientALTID. -
Pour indiquer d'autres traitements pour la même table (ou les mêmes tables), tels que le filtrage ou la manipulation des données, vous devez également créer une instruction
TABLEpour chacune de ces tables. Le caractère générique peut être utilisé pour indiquer plusieurs tables avec une instructionTABLE, le cas échéant. -
Utilisez une instruction
MAPde réplication standard dans le fichier de paramètres de réplication, comme d'habitude.MAPpour l'extraction ne remplace pasMAPpour le processus Replicat, qui est requis pour mettre en correspondance les tables source avec les tables cible. -
La capture et la réplication
DDLne sont pas prises en charge lors de l'utilisation deALTID.
Valeur par défaut
Aucun
Syntaxe
MAP *[<container>.]<schema>.*<table>, ALTID <object_ID> [, <object_ID>]
[<container>.]<schema.table>
Nom qualifié complet de la table source.
<object_ID>
Objet ID de la table tel qu'il existe dans la base de données de production (source).
Si une table est partitionnée, vous pouvez répertorier les ID d'objet des partitions à répliquer, en les séparant par une virgule.
Exemples
Exemple 1
Cet exemple mappe une table non partitionnée ou une seule partition d'une table partitionnée.
MAP QASOURCE.T2, ALTID 75740;
Exemple 2
Cet exemple mappe les partitions d'une table partitionnée.
MAP QASOURCE.T_P1, ALTID 75257,75258;