Mise en place du CDC en mode Redo/Archive log d'Oracle - 6.5

Talend Data Integration Studio Guide utilisateur

EnrichVersion
6.5
EnrichProdName
Talend Data Integration
EnrichPlatform
Studio Talend
task
Création et développement

Le mode Redo/Archive log d'Oracle utilisé par Talend est l'équivalent du mode archive log d'Oracle.

Les trois sections suivantes vous présentent les prérequis à l'utilisation du CDC en mode Redo/Archive log pour la base de données Oracle et fournit un exemple en deux étapes de la mise en place d'un environnement CDC utilisant le mode Redo/Archive log d'Oracle dans le Studio Talend : la première étape consiste en la configuration de votre système pour l'utilisation du CDC et la deuxième consiste en l'extraction des changements.

Prérequis à l'utilisation du mode Redo/Archive log d'Oracle

La fonctionnalité CDC utilise Java. Assurez-vous que Java est activé lorsque vous installez la base de données Oracle.

La fonction CDC dans ce mode est disponible pour la version 10g ou supérieure des bases de données Oracle. Avant d'utiliser la fonction CDC en mode Redo/Archive log dans le Studio Talend, l'administrateur de la base de données à surveiller doit :

  1. Activer le mode Active log de la base de données.

  2. Mettre en place le CDC dans la base Oracle.

  3. Créer et donner tous les droits à l'utilisateur ou l'utilisatrice source.

  4. Créer et donner tous les droits et privilèges à l'éditeur.

Activer le mode archive log d'Oracle

Pour cela, connectez-vous en tant qu'administrateur à la base de données Oracle et activer le mode Active log à l'aide des requêtes suivantes :

connect / as sysdba;
shutdown;
startup exclusive mount;
alter database archivelog;
alter database open;

Mettre en place le CDC de la base Oracle

Pour cela, créez un tablespace pour l'utilisateur ou l'utilisatrice source et l'éditeur respectivement, puis créez un utilisateur ou une utilisatrice source et donnez-lui tous les droits nécessaires pour faire des modifications.

Dans l'exemple ci-dessous, le chemin $ORACLE_PATH varie selon l'endroit où est installé Oracle. l'utilisateur ou l'utilisatrice source est appelé source et l'éditeur est appelé publisher.

create tablespace SOURCE datafile '$ORACLE_PATH/oradata/Oracle/SOURCE.dbf' size 50M;

create user source
identified by source
default tablespace SOURCE 
quota unlimited on SOURCE
quota unlimited on SYSTEM
quota unlimited on SYSAUX;

grant connect, create table to source;
grant create tablespace to source;
grant unlimited tablespace to source;
grant select_catalog_role to source;
grant execute_catalog_role to source;
grant create sequence to source;
grant create session to source;
grant dba to source;
grant execute on SYS.DBMS_CDC_PUBLISH to source;
alter user source quota unlimited on users;

create tablespace PUBLISHER datafile '$ORACLE_PATH/oradata/Oracle/PUBLISHER.dbf' size 50M;

create user publisher
identified by publisher
default tablespace PUBLISHER
quota unlimited on PUBLISHER
quota unlimited on SYSTEM
quota unlimited on SYSAUX;

grant connect, create table to publisher;
grant create tablespace to publisher;
grant unlimited tablespace to publisher;
grant select_catalog_role to publisher;
grant execute_catalog_role to publisher;
grant create sequence to publisher;
grant create session to publisher;
grant dba to publisher;
grant execute on SYS.DBMS_CDC_PUBLISH to publisher;
execute DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(GRANTEE=>'publisher');

Le code select_catalog_role permet à l'éditeur de consulter tout le dictionnaire Oracle.

Le code execute_catalog_role permet à l'éditeur d'exécuter les procédures du dictionnaire.

Le code SYS.DBMS_CDC_PUBLISH permet à l'éditeur de configurer le système CDC capturant et publiant les données modifiées dans une ou plusieurs tables relationnelles source.

La procédure DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(GRANTEE=>'publisher')accorde les privilèges d'administration nécessaires à l'utilisateur ou l'utilisatrice pour faire des opérations de réplication de données (stream). Le code GRANT_ADMIN_PRIVILEGE permet à l'utilisateur ou l'utilisatrice d'effectuer toutes les opérations de configuration de l'environnement stream : notamment la capture, la propagation, l'application, la mise en file d'attente, etc.

Configurer le CDC en mode Oracle Redo/Archive log

Les étapes de configuration suivantes ne sont à mettre en place qu'une seule fois pour un scénario éditeur/souscripteur donné.

Étape 1 : Définir l'éditeur

Pour définir l'éditeur, vous devez :

  1. Créer un nouveau Job dans le Studio Talend.

  2. Définir une connexion à la base de données dédiée au CDC en utilisant l'utilisateur ou l'utilisatrice publisher ayant tous les droits nécessaires.

  3. Définir une connexion à la base de données à monitorer en renseignant les informations de connexion à cette base de données.

Étape 2 : Identifier la table source

Pour identifier la ou les table(s) à surveiller, cliquez-droit sur la connexion correspondant à la base de données à monitorer et sélectionnez Retrieve Schema puis récupérez le schéma de la table source et chargez ce dernier dans le Repository.

Dans cet exemple, la table source est client et contient trois colonnes id, name et age.

Étape 3 : Récupérer et traiter les changements.

Pour récupérer les données modifiées, définissez la connexion entre le CDC et les données :

  1. Cliquez-droit sur le dossier CDC Foundation de la connexion à la base de données Oracle à monitorer.

  2. Sélectionnez Create CDC dans le menu contextuel pour ouvrir la boîte de dialogue Create Change Data Capture.

  3. Cliquez sur le bouton [...] à côté du champ Set Link Connection pour sélectionner la connexion correspondant au CDC. Définissez l'utilisateur ou l'utilisatrice Oracle, publisher dans cet exemple. cet·te utilisateur·rice va créer les tables de stockage des changements et activer la capture des changements de la table source monitorée.

  4. Dans la zone Options, sélectionnez le mode Log mode de capture des changements.

  5. Cliquez sur Create Subscriber. La boîte de dialogue Create Subscriber and Execute SQL Script apparaît.

  6. Cliquez sur Execute puis sur Close pour fermer la boîte de dialogue.

  7. Cliquez sur Finish dans la boîte de dialogue Create Change Data Capture.

Dans le dossier CDC Foundation, le schéma de la table des souscripteurs apparaît. Une icône apparaît pour montrer que la capture des changements de la table est activée sur la table monitorée.

Étape 4 : Créer la table des changements, souscrire à la table source et activer la souscription

Vous devez préciser à quelle table le souscripteur veut souscrire, puis activer son inscription.

  1. Cliquez-droit sur le schéma correspondant à la table source et sélectionnez Add CDC. La boîte de dialogue Create Subscriber and Execute SQL Script apparaît.$

    Note

    Pour les bases de données Oracle et à partir de la version 3.2 du Studio Talend, le système CDC crée un alias pour la ou les table(s) source qu'il monitore. Cela permet d'éviter les problèmes de longueur des identificateurs lors de la création de la table des changements et de sa vue associée. Pour les systèmes CDC déjà en place, le nom des tables est conservé.

  2. Cliquez sur Execute pour activer l'inscription à la table source, puis sur Close pour fermer la boîte de dialogue.

    Dans le dossier CDC Foundation, les schémas de la table de stockage des changements et de la vue associée apparaissent.

  3. Pour voir les changements apportés aux données, cliquez-droit sur la table correspondante dans le dossier Table schemas et sélectionnez View All Changes pour ouvrir la boîte de dialogue correspondante.

    Dans la colonne TALEND_CDC_TYPE de la boîte de dialogue [View All Changes], vous pouvez observer les différents changements capturés.

    Les modifications sont capturées comme suit : I indique de les données ont été insérées, UN indique que les données ont été mises à jour et D indique que les données supprimées.

    Les colonnes de la table source et leurs valeurs sont également affichées.

  4. Cliquez sur Finish pour fermer la boîte de dialogue.

Extraire des données modifiées en mode Archive log/Oracle Redo

Après avoir défini l'environnement CDC, vous pouvez créer un Job dans le Studio Talend à l'aide du composant CDC Oracle, afin d'extraire les changements apportés aux données du système source.

Pour plus d'informations concernant les propriétés et les paramètres du composant tOracleCDC, consultez sa documentation sur https://help.talend.com.

Si vous souhaitez utiliser la fonction CDC avec une base de données Oracle, procédez comme suit :

  1. À partir du Repository, glissez la table source dans l'espace de modélisation et sélectionnez le composant tOracleCDC dans la boîte de dialogue [Components]. À partir de la Palette, glissez le composant tLogRow dans l'espace de modélisation. Connectez les deux composants à l'aide d'un lien Row Main.

  2. Double-cliquez sur le composant tOracleCDC pour afficher ses propriétés (Basic settings).

    Dans la liste déroulante Property type, le mode Repository est sélectionné et récupère les informations de connexion à la base de données dédiée au CDC stockée localement dans la vue Repository. Tous les champs de connexion saut automatiquement complétés.

    Dans la liste déroulante Schema using CDC, le mode Repository est sélectionné et récupère le schéma correspondant à votre table source Oracle.

    Dans le champ Table using CDC, le nom de la table source dans laquelle capturer les changements s'affiche. Dans cet exemple, la table s'appelle CLIENT.

    Note

    La case CDC Log Mode est cochée puisque vous avez sélectionné le mode Log lors de la mise en place de l'environnement CDC dans le Repository.

  3. Dans le champ Events to catch, cochez la case correspondant à l'événement ou aux événements à surveiller. Dans cet exemple, récupérez les opérations d'insertion, de mise à jour et de suppression, il faut donc cocher les cases Insert, Update et Delete.

  4. Sauvegardez votre Job et appuyez sur F6 pour l'exécuter.

Dans la console, vous pouvez lire les résultats en sortie qui correspondent à ce que vous pouvez voir dans la boîte de dialogue [View All Changes].