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

Talend Real-time Big Data Platform Studio Guide utilisateur

EnrichVersion
6.2
EnrichProdName
Talend Real-Time Big Data Platform
task
Création et développement
Qualité et préparation de données
EnrichPlatform
Studio Talend

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

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 mode Redo/Archive log pour la base de données Oracle, et une approche de la mise en place d'un environnement CDC 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 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 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 source et l'éditeur respectivement, puis créez un utilisateur source et donnez-lui tous les droits nécessaires pour faire des modifications. Créez un éditeur et donnez tous les droits et privilèges nécessaires à l'éditeur afin qu'il puisse capturer et publier les changements.

Dans l'exemple ci-dessous, le chemin $ORACLE_PATH varie selon l'endroit où est installé Oracle. L'utilisateur 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');

La procédure select_catalog_role permet à l'éditeur de consulter tout le dictionnaire Oracle.

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

La procédure 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 pour faire des opérations de réplication de données (stream). La procédure GRANT_ADMIN_PRIVILEGE permet à l'utilisateur 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.

Etapes de configuration du CDC en mode Redo/Archive log

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

Etape 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 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.

Etape 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.

Etape 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 [...] du champ Set Link Connection pour sélectionner la connexion correspondant au CDC et définir l'utilisateur Oracle (ici, publisher) qui 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.

Etape 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 la surveillance des événements 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.

Extraction des données modifiées en mode Archive log

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 un exemple d'utilisation des composants CDC et pour plus d'informations concernant ses propriétés et ses paramètres, consultez le Guide de référence des Composants Talend.

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

  1. A 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]. A 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.

    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.

    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. Enregistrez 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].