tOracleCDC - 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

Fonction

Le composant tOracleCDC extrait les données modifiées d'une table source à partir de la dernière extraction et transfère ces données vers un ou plusieurs autre(s) système(s).

Objectif

Le tOracleCDC permet l'extraction et la migration de données. Ce composant extrait uniquement les changements apportés aux données source et les met à disposition de(s) système(s) cible utilisant l'aperçu de base de données CDC.

Propriétés du tOracleCDC

Famille du composant

Databases/Oracle

 

Basic settings

Property type of the CDC connection

Peut-être Built-in ou Repository.

 

 

Built-In : Le schéma est créé et conservé ponctuellement pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

 

 

Repository : Le schéma existe déjà et il est stocké dans le Repository. Ainsi, il peut être réutilisé. Voir également le Guide utilisateur du Studio Talend.

 

Use an existing connection

Cochez cette case et sélectionnez le composant de connexion adéquat à partir de la liste Component List pour réutiliser les paramètres d'une connexion que vous avez déjà définie.

Note

Lorsqu'un Job contient un Job parent et un Job enfant, si vous souhaitez utiliser une connexion existant entre les deux niveaux, par exemple pour partager la connexion créée par le Job parent avec le Job enfant, vous devez :

  1. Au niveau parent, enregistrer la connexion à la base de données à partager, dans la vue Basic settings du composant de connexion créant cette connexion.

  2. Au niveau enfant, utiliser un composant dédié à la création de connexion, afin de lire la connexion enregistrée.

Pour plus d'informations concernant le partage d'une connexion à travers différents niveaux de Jobs, consultez le Guide utilisateur du Studio Talend.

 

Connection Type

Liste déroulante des pilotes disponibles :

  • Oracle SID : Sélectionnez ce type de connexion pour identifier exclusivement une base de données spécifique sur un système.

  • Oracle Service Name : Sélectionnez ce type de connexion pour utiliser l'alias TNS que vous fournissez lorsque vous vous connectez à la base de données distante.

  • Oracle OCI : Sélectionnez ce type de connexion pour utiliser l'interface d'appel de la base de données Oracle ( Oracle Call Interface) accompagnée d'un ensemble de logiciels API de langage C qui fournissent une interface à cette base de données Oracle.

  • Oracle CUSTOM : Sélectionnez ce type de connexion pour accéder à une base de données contenant des clusters.

 

DB Version

Sélectionnez la version de la base de données Oracle utilisée.

 

Host

Spécifiez le nom de l'hôte ou l'adresse IP de base de données Oracle.

Ce champ est disponible uniquement lorsque l'option Oracle SID ou Oracle Service Name est sélectionnée dans la liste déroulante Connection Type.

 

Port

Spécifiez le numéro du port d'écoute du serveur de la base de données Oracle.

Ce champ est disponible uniquement lorsque l'option Oracle SID ou Oracle Service Name est sélectionnée dans la liste déroulante Connection Type.

 

Database

Spécifiez le nom de la base de données Oracle.

Ce champ est disponible uniquement lorsque l'option Oracle SID ou Oracle Service Name est sélectionnée dans la liste déroulante Connection Type.

 

Local Service Name

Spécifiez le nom du service local de la base de données Oracle.

Ce champ est disponible uniquement lorsque l'option Oracle OCI est sélectionnée dans la liste déroulante Connection Type.

 

URL

Spécifiez l'URL de la base de données Oracle distante.

Ce champ apparaît lorsque l'option Oracle CUSTOM est sélectionnée dans la liste déroulante Connection Type.

 

Oracle schema

Spécifiez le nom du schéma Oracle.

 

Username et Password

Spécifiez les informations d'authentification de l'utilisateur de la base de données Oracle.

Pour saisir le mot de passe, cliquez sur le bouton [...] à côté du champ Password, puis, dans la boîte de dialogue qui s'ouvre, saisissez le mot de passe entre guillemets doubles et cliquez sur OK afin de sauvegarder les paramètres.

 

Schema using CDC et Edit schema

Un schéma est une description de lignes, il définit le nombre de champs qui sont traités et passés au composant suivant. Le schéma est soit local (built-in) soit distant dans le Repository.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de Talend.

Cliquez sur Edit schema pour modifier le schéma. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir le schéma.

  • Change to Built-In property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

Le schéma est configuré par défaut selon le mode CDC utilisé.

 

 

Built-In : Le schéma est créé et conservé ponctuellement pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

 

 

Repository : Le schéma existe déjà et il est stocké dans le Repository. Ainsi, il peut être réutilisé. Voir également le Guide utilisateur du Studio Talend.

 

CDC mode

Sélectionnez un mode CDC à utiliser :

  • Trigger : mode CDC Trigger.

  • Log : mode CDC Redo/Archive log. Ce mode est disponible uniquement lorsque, dans la liste DB Version, vous sélectionnez la version Oracle 11-6 ou une version antérieure.

  • XStream : mode CDC XStream. Ce mode est disponible uniquement lorsque, dans la liste Connection Type, vous sélectionnez Oracle OCI et que dans la liste DB Version vous sélectionnez Oracle 12-7.

Pour plus d'informations concernant les modes CDC, consultez le Guide utilisateur du Studio Talend.

 

Generate LCR type

Sélectionnez un type de LCR à générer, LCR Object ou LCR XML Document.

Cette liste s'affiche uniquement lorsque le mode CDC est XStream.

 

Table using CDC

Spécifiez le nom de la table source dans laquelle capturer les changements apportés aux données.

 

Set data table schema

Cochez cette case si vous souhaitez spécifier le schéma de la table CDC.

Cette case est disponible uniquement lorsque le mode CDC est Trigger ou Log.

 

Subscriber

Spécifiez le nom de l'application qui utilisera la table de modifications lorsque vous utilisez le mode Trigger pour la capture des changements.

Cette case est disponible uniquement lorsque le mode CDC est Trigger.

 

Events to catch

Insert : Cochez cette case pour capturer les données insérées dans la table de modifications depuis la dernière extraction.

Update : Cochez cette case pour capturer les données mises à jour dans la table de modifications depuis la dernière extraction.

Delete : Cochez cette case pour capturer les données supprimées dans la table de modifications depuis la dernière extraction.

Ces cases sont disponibles lorsque le mode CDC est Trigger ou Log.

 

Limit

Spécifiez le nombre maximum de lignes pouvant être consommées par un souscripteur dans la table de modifications.

Cette case est disponible uniquement lorsque le mode CDC est Trigger.

 

Outbound server name

Spécifiez le nom du serveur de sortie XStream.

Cette case est disponible uniquement lorsque le mode CDC est XStream.

 

Keep listening

Cochez cette case pour continuer à monitorer le serveur de sortie et les modifications de données. Le Job ne s'arrête pas avant que vous ne l'arrêtiez manuellement lorsque nécessaire.

Cette case est disponible uniquement lorsque le mode CDC est XStream.

Advanced settings

Keep data in CDC Table

Cochez cette case pour garder les changements à disposition d'un ou plusieurs système(s) cible même après qu'ils aient été consultés.

Ce champ est disponible lorsque le mode CDC est Trigger ou Log.

 

Use cursor

Cochez cette case et définissez le nombre de lignes avec lesquelles vous souhaitez travailler en une fois. Cette option permet d'optimiser les performances.

Ce champ est disponible lorsque le mode CDC est Trigger ou Log.

 

Trim all the String/Char columns

Cochez cette case pour supprimer les espaces en début et en fin de champ dans toutes les colonnes contenant des chaînes de caractères.

Ce champ est disponible lorsque le mode CDC est Trigger ou Log.

 

Trim column

Supprimez les espaces en début et en fin de champ dans les colonnes sélectionnées.

Note

Décochez Trim all the String/Char columns pour activer la table Trim column.

Cette table est disponible lorsque le mode CDC est Trigger ou Log.

 

Acknowledge interval(seconds)

Spécifiez la valeur de l'attribut OCI_ATTR_XSTREAM_ACK_INTERVAL pour le serveur de sortie. La valeur par défaut est de 30 secondes.

Pour plus d'informations concernant cet attribut, consultez http://docs.oracle.com/cd/E18283_01/server.112/e16545/xstrm_oci_intro.htm#CEGDICBB (en anglais).

Ce champ est disponible uniquement lorsque le mode CDC est XStream.

 

Idle timeout(seconds)

Spécifiez la valeur de l'attribut OCI_ATTR_XSTREAM_IDLE_TIMEOUT pour le serveur de sortie. La valeur par défaut est de 1 seconde.

Pour plus d'informations concernant cet attribut, consultez http://docs.oracle.com/cd/E18283_01/server.112/e16545/xstrm_oci_intro.htm#CEGDICBB (en anglais).

Ce champ est disponible uniquement lorsque le mode CDC est XStream.

 

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

 

Enable parallel execution

Cocher cette case permet de traiter plusieurs flux de données simultanément. Cela permet de traiter les données plus rapidement. Notez que cette fonctionnalité dépend de la capacité de la base de données ou de l'application à gérer plusieurs insertions en parallèle ainsi que le nombre de processeurs utilisés. Dans le champ Number of parallel executions, vous pouvez :

  • Saisir le nombre d'exécutions parallèles désiré.

  • Appuyer sur Ctrl+Espace et sélectionner la variable de contexte dans la liste. Pour plus d'informations, consultez le Guide utilisateur du Studio Talend.

Notez que, lorsque l'exécution parallèle est activée, il n'est pas possible d'utiliser les variables globales pour récupérer les valeurs de retour dans un sous-job.

Avertissement

  • Le champ Action on table n'est pas disponible avec la fonction de parallélisation. Ainsi, pour créer une table, vous devez utiliser un composant tCreateTable.

  • Lorsque l'exécution parallèle est activée, il n'est pas possible d'utiliser les variables globales pour retrouver les valeurs de retour dans un sous-job.

Global Variables 

NB_LINE : nombre de lignes traitées. Cette variable est une variable After et retourne un entier.

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant est généralement utilisé comme composant de début. Il nécessite un composant de sortie et une connexion de type Row Main.

Log4j

Si vous utilisez une solution Talend soumise à souscription, l'activité de ce composant peut être journalisée avec la fonctionnalité log4j. Pour plus d'informations sur cette fonctionnalité, consultez le Guide utilisateur du Studio Talend.

Pour plus d'informations sur les niveaux de logs du log4j, consultez la documentation d'Apache : http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html (en anglais).

Scénario 1 : Alimenter une table de données

Ce scénario Java suivant permet d'alimenter une table de données. Il est constitué de trois composants : le composant tOracleInput correspond aux données de vos clients contenues dans la table CLIENT. Ces données seront modifiées par la suite à l'aide d'un composant tMap et les modifications seront transmises à la table LEADFACT à l'aide du composant de sortie tOracleOutput.

  1. Cliquez et déposez ces trois composants dans l'espace de modélisation et connectez-les à l'aide de lien de type Row Main. Appelez le lien connectant le tMap au tOracleOutput leadfact.

  2. Double-cliquez sur le composant tOracleInput pour paramétrer ses propriétés.

  3. Dans le champ Property Type, sélectionnez l'option Repository puis la connexion à la base de données TALEND contenant les informations sur vos clients. Les informations de connexion seront renseignées automatiquement.

    Note

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

  4. Dans le champ Schema, sélectionnez l'option Repository puis le schéma de la table CLIENT stocké dans les métadonnées.

    Le champ Table name, sera automatiquement renseigné avec le nom de la table contenant les informations à modifier.

    Voir également le Guide utilisateur du Studio Talend.

  5. Cliquez sur le bouton Guess Query pour récupérer toutes les données de votre table.

  6. Double-cliquez sur le composant tMap pour accéder au Map Editor. La zone de gauche est déjà renseignée avec le schéma du composant d'entrée.

  7. Sélectionnez les champs de la zone de gauche et glissez-les jusqu'à la table leadfact de la zone de droite. Pour plus d'informations concernant le mapping de données, consultez le Guide utilisateur du Studio Talend.

  8. Cliquez sur OK pour valider.

  9. Double-cliquez sur le composant tOracleOutput pour paramétrer ses propriétés.

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

    Note

    Si vous n'avez pas créé de connexion à la base de données, sélectionnez Built-in et renseignez les champs manuellement.

    Voir également le Guide utilisateur du Studio Talend.

  11. Dans le champ Table name, renseignez le nom de la table à alimenter, ici LEADFACT.

  12. Dans le champ Action on table, sélectionnez Create table pour créer la table.

  13. Appuyez sur F6 pour créer et alimenter la table LEADFACT de la base de données.

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

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.