Scénario 2 : Extraire les modifications à l'aide du CDC Redo log d'Oracle - 6.3

Composants Talend Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Avertissement

Avant de modifier les données de la table LEADFACT et de récupérer ces changements via le composant tOracleCDC, vous devez activer le mode Redo log de la base de données Oracle contenant la table à monitorer. Pour plus d'informations concernant l'activation du mode Redo log, consultez le Guide utilisateur du Studio Talend.

Ce scénario est basé sur le scénario précédent. Il alimente et modifie les données stockées dans la table LEADFACT et récupère et enregistre ces modifications à l'aide de la fonction CDC dans une table dédiée. Ces modifications sont ensuite extraites.

Etape 1 : Configurer le CDC

Avant d'extraire les modifications apportées à votre table LEADFACT, vous devez :

  1. configurer la connexion à la base de données dédiée au CDC,

  2. configurer la connexion à la base de données source et identifier la table à surveiller,

  3. configurer la connexion entre le CDC et les données.

    Pour cela :

  4. Dans le Repository, sous le nœud Metadata, créez une connexion à votre base de données dédiée au CDC, ici cdc_publisher.

    Note

    Vérifiez que la connexion au CDC est sur le même serveur que la source de données pour laquelle les changements seront capturés.

  5. Dans le Repository, sous le nœud Metadata, créez une connexion à la table dont vous souhaitez extraire les changements, ici LEADFACT.

  6. Cliquez-droit sur la connexion à la base de données orcl et sélectionnez l'option Retrieve schema pour récupérer le schéma de la table à surveiller.

  7. Cliquez-droit sur le sous-dossier CDC Foundation de la connexion cdc_data et sélectionnez l'option Create CDC dans le menu contextuel.

    La boîte de dialogue [Create change data capture] apparaît.

  8. Cliquez sur le bouton [...] à côté du champ Set Link Connection pour sélectionner la connexion correspondant au CDC, ici : cdc_publisher.

  9. Dans la zone Options, sélectionnez le mode Log mode.

  10. Cliquez sur le bouton Create Subscriber. La boîte de dialogue [Create subscriber and Execute SQL Script] apparaît.

  11. Cliquez sur Execute, puis sur Close pour fermer la boîte de dialogie [Create Subscriber and Execute SQL Script].

  12. Cliquez sur Finish dans la boîte de dialogue [Create Change Data Capture] pour valider la création de la table des souscripteurs.

    Dans le sous-dossier CDC Foundation, une icône apparaît pour montrer que la capture des modifications de la table est activée.

    Vous devez précisez à quelle table le souscripteur doit souscrire puis activer la souscription. Pour cela :

  13. Cliquez-droit sur le schéma de la table LEADFACT de la connexion cdc_data à surveiller et sélectionnez l'option add CDC dans le menu contextuel. 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 de 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é.

  14. Cliquez sur Execute pour activer la surveillance des événements, puis sur Close pour valider la souscription.

    Dans le dossier CDC Foundation, deux nouvelles tables apparaissent et le schéma de la table surveillée est marqué d'un symbole CDC vert.

Etape 2 : Modifier les données

Modifiez les données de vos clients dans la table LEADFACT, par exemple, mettre tous les noms de vos clients en majuscule dans un soucis d'harmonisation.

  1. Double-cliquez sur le composant tMap et saisissez row1.LASTNAME.toUpperCase()devant la colonne LASTNAME pour mettre tous les noms de vos clients en majuscule.

  2. Cliquez sur OK.

  3. Double-cliquez sur le composant tOracleOutput.

  4. Dans le champ Action on table, sélectionnez None.

  5. Dans le champ Action on data, sélectionnez Insert or update pour insérer ou mettre à jour les données de la table.

  6. Appuyez sur F6 pour exécuter le Job de modification de données.

    Pour visualiser toutes les modifications apportées, cliquez-droit sur la table LEADFACT et sélectionnez l'option View All Changes.

Etape 3 : Extraire les modifications apportées aux données

Après avoir mis en place l'environnement CDC, vous pouvez créer un Job utilisant le composant Oracle CDC pour extraire les modifications apportées aux données de la table LEADFACT. Pour cela:

  1. Dans la Palette, cliquez-déposez les composants tOracleCDC et tLogRow.

  2. Reliez ces deux composants à l'aide d'une connexion de type Row Main.

  3. Double-cliquez sur le composant tOracleCDC pour paramétrer ses propriétés.

  4. Dans le champ Property Type, sélectionnez l'option Repository puis la connexion cdc_publisher à la base de données CDC. Les informations de connexion seront renseignées automatiquement.

    Note

    Si vous n'avez pas créé de connexion à votre base de données de modifications dans les métadonnées, sélectionnez Built-in dans le champ Property Type et renseignez les champs manuellement.

  5. Dans le champ Schema using CDC, sélectionnez l'option Repository puis le schéma de votre table LEADFACT stockée dans les métadonnées.

  6. Dans le champ Table using CDC, renseignez le nom de la table surveillée par le CDC.

  7. Dans le champ Events to catch, cochez les cases correspondant au type de modifications que le souscripteur va extraire, ici cochez les trois cases pour les trois souscripteurs.

  8. Double-cliquez sur le composant tLogRow pour paramétrer ses propriétés.

  9. Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent.

  10. Cliquez sur le bouton Edit schema pour ouvrir la boîte de dialogue [Schema].

  11. Dans la colonne Date Pattern de la ligne TALEND_CDC_CREATION_DATE, saisissez le format de date souhaité entre guillemet : "yyyy-MM-dd".

  12. Enregistrez votre Job et appuyez sur F6 pour l'exécuter.

    En mode Redo log, la capture des modifications se fait de la manière suivante : la mise à jour d'une donnée est considérée comme une suppression (UO) puis une insertion (UN). Ainsi, les informations sur vos clients apparaissent deux fois :

    - la première fois, elles ne sont pas modifiées et portent la mention UO pour dire qu'elles ont été supprimées.

    - la deuxième fois, elles apparaissent modifiées avec la mention UN pour dire qu'elles ont été insérées.

    Une fois, ces modifications extraites, elles ne sont plus disponibles dans la table des modifications. Pour vérifier leur extraction, faites un clic-droit sur la table LEADFACT surveillée par le CDC et sélectionnez l'option Views All Changes. Les modifications extraites n'y apparaissent plus.

    Pour un autre scénario CDC utilisant le mode Trigger, consultez Scénario 2 : Extraire les modifications à l'aide du CDC du composant tMysqlCDC.