Scénario : Extraire et synchroniser les modifications de données à l'aide du mode XStream - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
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

Ce scénario décrit un Job qui insère des données dans une table source vide, nommée PERSON, dans une base de données Oracle pour laquelle un serveur de sortie XStream est configuré. Ensuite, le Job extrait et synchronise les modifications de données dans une table cible vierge nommée PERSON_BAK dans une autre base de données Oracle pour laquelle un serveur d'entrée XStream est configuré à l'aide du mode XStream CDC. Enfin, il affiche les données des tables source et cible dans la console.

Prérequis : Les connexions aux bases de données Oracle dédiées aux serveurs d'entrée et de sortie XStream sont configurées dans le Repository du Studio. De plus, le CDC est ajouté aux tables vierges source et cible. Pour plus d'informations concernant la configuration d'une connexion à une base de données Oracle et concernant la configuration du CDC pour le mode XStream d'Oracle, consultez le Guide utilisateur du Studio Talend.

Ajouter et relier les composants

  1. Créez un nouveau Job et ajoutez les composants suivants en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette : un tFixedFlowInput, un tOracleOutput, un tOracleCDC, un tOracleCDCOutput, deux tOracleInput et deuxtLogRow.

  2. Reliez le tFixedFlowInput au tOracleOutput à l'aide d'un lien Row > Main.

  3. Procédez de la même manière afin de relier le tOracleCDC au tOracleCDCOutput, le premier tOracleInput au premier tLogRow et le second tOracleInput au second tLogRow.

  4. Reliez le tFixedFlowInput au tOracleCDC à l'aide d'un lien Trigger > On Subjob Ok.

  5. Procédez de même pour relier le tOracleCDC au premier tOracleInput et le premier tOracleInput au second tOracleInput.

Configurer les composants

Insérer les données dans la table source

  1. Double-cliquez sur le tFixedFlowInput afin d'ouvrir sa vue Basic settings.

  2. Cliquez sur le bouton [...] à côté du champ Edit schema afin d'ouvrir l'éditeur de schéma.

    Cliquez quatre fois sur le bouton [+] afin d'ajouter quatre colonnes : id et age de type Integer, name et sex de type String.

    Cliquez sur OK afin de fermer l'éditeur de schéma et acceptez la propagation proposée par la boîte de dialogue.

  3. Dans la zone Mode, sélectionnez Use Inline Content(delimited file) puis saisissez les données d'entrée suivantes dans le champ Content :

    1;Ford;Male;25
    2;Rose;Female;30
    3;Sabrina;Female;28
    4;Teddy;Male;32
    5;Kate;Male;35
  4. Double-cliquez sur le tOracleOutput afin d'ouvrir sa vue Basic settings.

  5. Sélectionnez le mode Repository dans le champ Property Type et sélectionnez les métadonnées de connexion qui correspondent à la base de données Oracle sur laquelle le serveur de sortie XStream est configuré, Oracle12_XStreamOut dans cet exemple. Le type de connexion, la version de la base de données et les informations de connexion sont automatiquement renseignés.

  6. Dans le champ Table, saisissez le nom de la table dans laquelle insérer les données d'entrée, PERSON dans cet exemple.

  7. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur de schéma afin de vérifier que le schéma a été synchronisé.

Extraire et synchroniser les modifications de données pour la table cible

  1. Double-cliquez sur le tOracleCDC afin d'ouvrir sa vue Basic settings.

  2. Sélectionnez le mode Repository dans le champ Property of the CDC connection et sélectionnez les métadonnées de connexion qui correspondent à la base de données Oracle sur laquelle le serveur de sortie XStream est configuré, Oracle12_XStreamOut dans cet exemple. Le type de connexion, la version de la base de données et les informations de connexion sont automatiquement renseignés.

  3. Dans la liste déroulante Generate LCR type, sélectionnez LCR Object.

    Dans la champ Table using CDC, saisissez le nom de la table source à partir de laquelle capturer les modifications de données, PERSON dans cet exemple.

    Dans le champ Outbound server name, saisissez le nom du serveur de sortie XStream, xout dans cet exemple.

  4. Cliquez sur le bouton [...] à côté du champ Edit schema afin d'ouvrir l'éditeur de schéma et vérifier que le schéma a été défini par défaut.

  5. Cliquez sur Advanced settings afin d'ouvrir la vue correspondante.

    Dans le champ Idle timeout(seconds), saisissez le nombre de secondes de période d'inactivité pendant laquelle le serveur de sortie attend un LCR avant de terminer l'appel pour récupérer ou recevoir un flux LCR. En raison du temps de la latence du réseau et du temps de réponse de la base de données, la période d'activité est définie à 60 secondes dans cet exemple.

  6. Double-cliquez sur le tOracleCDCOutput afin d'ouvrir sa vue Basic settings.

    Sélectionnez le mode Repository dans le champ Property of the CDC connection et sélectionnez les métadonnées de connexion qui correspondent à la base de données Oracle sur laquelle le serveur d'entrée XStream est configuré, Oracle12_XStreamIn dans cet exemple. La version de la base de données et les informations de connexion sont automatiquement renseignées.

  7. Dans le champ Inbound server name, saisissez le nom du serveur d'entrée XStream. xin dans cet exemple.

    Cochez la case Set data table schema et spécifiez le schéma de la table CDC, TALEND dans cet exemple.

    Cochez la case Set target table et spécifiez la table dans laquelle les modifications de données du serveur d'entrée sont répliquées, PERSON_BAK dans cet exemple.

Récupérer les données depuis les tables source et cible

  1. Double-cliquez sur le premier tOracleInput afin d'ouvrir sa vue Basic settings.

  2. Sélectionnez le mode Repository dans le champ Property Type et sélectionnez les métadonnées de connexion qui correspondent à la base de données Oracle sur laquelle le serveur de sortie XStream est configuré, Oracle12_XStreamOut dans cet exemple. Le type de connexion, la version de la base de données et les informations de connexion sont automatiquement renseignés.

    Sélectionnez le mode Repository dans la liste Schema et sélectionnez la table source à partir du Repository, PERSON dans cet exemple.

  3. Dans le champ Query, saisissez la requête SQL suivante afin de récupérer toutes les données depuis la table source :

    select * from PERSON
  4. Double-cliquez sur le second tOracleInput afin d'ouvrir sa vue Basic settings.

  5. Sélectionnez le mode Repository dans le champ Property Type et sélectionnez les métadonnées de connexion qui correspondent à la base de données Oracle sur laquelle le serveur d'entrée XStream est configuré, Oracle12_XStreamIn dans cet exemple. La version de la base de données et les informations de connexion sont automatiquement renseignées.

    Sélectionnez le mode Repository dans le champ Schema et sélectionnez la table cible depuis le Repository, PERSON_BAK par exemple.

  6. Dans le champ Query, saisissez la requête SQL suivante afin de récupérer toutes les données depuis la table cible :

    select * from PERSON_BAK
  7. Double-cliquez sur le premier tLogRow afin d'ouvrir sa vue Basic settings.

    Dans la zone Mode, sélectionnez l'option Table (print values in cells of a table) afin d'obtenir un affichage optimisé des résultats.

  8. Procédez de la même manière pour le second tLogRow.

Sauvegarder et exécuter le Job

  1. Appuyez sur Ctrl + S afin de sauvegarder le Job.

  2. Appuyez sur F6 afin d'exécuter le Job.

    Comme montré ci-dessus, les données d'entrée sont insérées dans la table source puis les modifications de données sont synchronisées dans la table cible.