Scénario 2 : Partager une connexion de base de données entre un Job père et un Job fils - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
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
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario montre comment partager une connexion entre un Job père et un Job fils. Le Job père appelle le Job fils afin d'écrire des données aléatoires dans une base de données MySQL. Il lit ensuite les données depuis la base de données MySQL puis les affiche dans la console. La connexion à la base de données MySQL est configurée une seule fois et utilisée dans les deux Jobs.

Configurer le Job fils

Ajouter et relier les composants

  1. Ajoutez les composants suivants en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette :

    • un tMysqlConnection, afin d'ouvrir une connexion à la base de données MySQL,

    • un tRowGenerator, afin de générer des données d'entrée aléatoires,

    • un tMysqlOutput, afin d'écrire des données dans la base de données MySQL.

  2. Reliez le tRowGenerator au tMysqlOutput à l'aide d'un lien Row > Main.

  3. Reliez le tMysqlConnection au tRowGenerator à l'aide d'un lien Trigger > OnSubjobOk.

Configurer la connexion à la base de données

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

  2. Dans la liste Property Type, sélectionnez Built-In puis configurez les détails de connexion dans les champs appropriés, dont :

    • le nom d'hôte ou l'adresse IP de votre serveur de base de données (Host),

    • le numéro du port d'écoute (Port),

    • le nom de la base de données (Database),

    • le nom d'utilisateur (Username) et le mot de passe (Password) pour l'identification à la base de données.

    Si vous avez stocké les informations de connexion sous le nœud Metadata du Repository, vous pouvez déposer ces métadonnées centralisées sur le composant tMysqlConnection. Pour plus d'informations concernant la centralisation d'une connexion à une base de données, consultez le chapitre sur la gestion des métadonnées dans le Guide utilisateur du Studio Talend.

  3. Cochez la case Use or register a shared DB Connection afin que la connexion à la base de données ouverte par ce composant puisse être partagée entre les différents Jobs. Ensuite, dans le champ Shared DB Connection Name, saisissez un nom pour la connexion partagée, entre guillemets doubles, shared_mysql_connection dans cet exemple.

Configurer les données d'entrée

  1. Double-cliquez sur le composant tRowGenerator afin d'ouvrir l'éditeur Row Generator.

  2. Cliquez sur le bouton [+] afin d'ajouter quatre colonnes puis définissez leurs propriétés comme suit :

    • id, de type Integer et d'une longueur de 2 caractères,

    • firstName, de type String et d'une longueur de 15 caractères,

    • lastName, de type String et d'une longueur de 15 caractères,

    • city, de type String et d'une longueur de 15 caractères.

  3. Définissez la fonction de chaque colonne :

    • Pour la colonne id, sélectionnez Numeric.sequence dans la liste Function afin de générer des séquences de nombres.

    • Pour la colonne firstName, sélectionnez TalendDataGenerator.getFirstName dans la liste Function afin de générer des prénoms de manière aléatoire.

    • Pour la colonne lastName, sélectionnez TalendDataGenerator.getLastName dans la liste Function pour générer des noms de famille de manière aléatoire.

    • Pour la colonne city, sélectionnez TalendDataGenerator.getUsCity dans la liste Function pour générer des noms de ville de manière aléatoire.

  4. Dans le champ Number of Rows for RowGenerator, précisez le nombre de colonnes de données que vous souhaitez générer, 10 dans cet exemple.

  5. Cliquez sur le bouton Preview de l'onglet Preview afin de valider les paramètres du générateur.

  6. Une fois les paramètres validés, cliquez sur OK afin de fermer l'éditeur. Dans la boîte de dialogue qui s'affiche, cliquez sur Yes afin de propager les changements au composant suivant.

Configurer la sortie de la base de données

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

  2. Cochez la case Use an existing connection et, si vous avez plus d'un composant de connexion dans ce Job, sélectionnez le composant de connexion à utiliser dans la liste Component List.

  3. Dans le champ Table, saisissez le nom de la table de base de données dans laquelle les données sont écrites, customers dans cet exemple.

  4. Dans la liste Action on table, sélectionnez l'option Drop table if exists and create afin de vous assurer de la création d'une table vide.

  5. Dans la liste Action on data, sélectionnez Insert.

  6. Cliquez sur le bouton [...] à côté du champ Edit schema afin de vérifier la propagation du schéma de sortie. Si besoin, cliquez sur Sync columns afin de récupérer le schéma depuis le composant précédent.

  7. Appuyez sur Ctrl+S afin de sauvegarder votre Job.

Configurer le Job père

Ajouter et relier les composants

  1. Ajoutez les composants suivants en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette :

    • un tRunJob, afin d'appeler le Job fils,

    • un tMysqlConnection, afin d'ouvrir la connexion à la base de données MySQL,

    • un tMysqlInput, afin de lire les données écrites dans la base de données MySQL par le Job fils,

    • un tLogRow, afin d'afficher les données dans la console,

    • un tMysqlCommit, afin de commiter les données lors de la transaction et fermer la connexion à la base de données.

  2. Reliez le tRunJob au tMysqlConnection à l'aide d'un lien Trigger > OnSubjobOk.

  3. Reliez le tMysqlConnection au tMysqlInput à l'aide d'un lien Trigger > OnSubjobOk.

  4. Reliez le tMysqlInput au tLogRow à l'aide d'un lien Row > Main.

  5. Reliez le tMysqlInput au tMysqlCommit à l'aide d'un lien Trigger > OnSubjobOk.

Configurer les composants

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

    Si un Job fils a déjà été défini pour le composant, vous pouvez cliquer-droit sur le composant et sélectionner Settings dans le menu contextuel afin d'ouvrir la vue Basic settings. Vous pouvez également cliquer sur le composant et sélectionner l'onglet Component.

  2. Cliquez sur le bouton [...] à côté du champ Job et sélectionnez le Job fils dans la boîte de dialogue [Repository Content]. Laissez tous les autres paramètres tels qu'ils sont.

  3. Dans la vue Basic settings du composant tMysqlConnection, cochez la case Use or register a shared DB Connection. Ensuite, dans le champ Shared DB Connection Name, saisissez le nom de la connexion partagée définie dans le Job fils, shared_mysql_connection dans cet exemple.

    Laissez les autres paramètres vides ou tels qu'ils sont.

  4. Double-cliquez sur le tMysqlInput afin d'ouvrir sa vue Basic settings.

  5. Cochez la case Use an existing connection et, dans le cas où vous avez plus d'un composant de connexion dans ce Job, sélectionnez le composant de connexion à utiliser dans la liste Component List.

  6. Cliquez sur le bouton [...] à côté du champ Edit schema afin d'ouvrir l'éditeur [Schema] et définissez la même structure de données que dans le Job fils.

    Une fois la structure de données définie, cliquez sur OK afin de fermer l'éditeur de schéma. Dans la boîte de dialogue qui s'affiche, cliquez sur Yes afin de propager les changements au composant suivant.

  7. Précisez le nom de la tâche dans la liste Table Name et cliquez sur Guess Query afin de renseigner automatiquement le champ Query avec la requête appropriée.

  8. Dans la vue Basic settings du tLogRow, sélectionnez le mode Table afin d'afficher le résultat de l'exécution sous forme de tableau.

    Laissez les autres paramètres du tMysqlCommit tels qu'ils sont.

Exécuter le Job

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

  2. Appuyez sur F6 ou cliquez sur le bouton Run de la console Run afin d'exécuter votre Job.

    Le Job père appelle le Job fils afin d'écrire des données dans la base de données. Il lit ensuite les données depuis la base de données puis les affiche dans la console.