Scénario : Lire des données à partir de différentes bases de données MySQL à l'aide de paramètres de connexion chargés dynamiquement - 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

Le Job décrit dans ce scénario est composé de deux sous-jobs. Le premier permet de charger dynamiquement des paramètres de contexte à partir de deux fichiers texte. Le second utilise ces paramètres chargés afin de se connecter à deux bases de données différentes et d'afficher le contenu d'une table de base de données existante pour chacune de ces bases. Les paramètres de contexte du Job permettent de décider à quelle base de données se connecter et de choisir d'afficher ou non les paramètres de contexte définis dans la console à l'exécution.

Déposer et relier les composants

  1. Déposez, depuis la Palette, un tFileInputDelimeted et un tContextLoad dans l'espace de modélisation graphique. Reliez-les à l'aide d'un lien Row > Main afin de créer le premier sous-job.

  2. Déposez un tMysqlInput et un tLogRow dans l'espace de modélisation graphique. Reliez-les à l'aide d'un lien Row > Main afin de créer le second sous-job.

  3. Reliez les deux sous-jobs à l'aide d'un lien Trigger > OnSubjobOk.

Préparer les contextes et les variables de contexte

  1. Créez deux fichiers délimités correspondant aux deux contextes de ce scénario, à savoir les accès aux deux bases de données et nommez-les respectivement test_connection.txt et prod_connection.txt. Ces fichiers contiennent les informations de connexion aux bases de données, respectivement pour le test et pour la production. Chaque fichier est composé de deux colonnes, contenant le nom des paramètres et leurs valeurs correspondantes. Voici un exemple :

    host;localhost
    port;3306
    database;test
    username;root
    password;talend
  2. Sélectionnez la vue Contexts puis cliquez sept fois sur le bouton [+] pour ajouter sept lignes à la table afin de définir les paramètres suivants :

    • host, de type String

    • port, de type String

    • database, de type String

    • username, de type String

    • password, type Password

    • filename, de type File

    • printOperations, de type Boolean.

    Notez que les paramètres host, port, database, username et password correspondent au nom des paramètres dans les fichiers délimités et sont utilisés pour configurer la connexion à la base de données souhaitée. Le paramètre filename est utilisé pour définir le fichier délimité à lire au moment de l'exécution du Job et le paramètre printOperations est utilisé pour décider d'afficher ou non les paramètres de contexte définis par le tContextLoad dans la console.

  3. Cliquez sur l'onglet Contexts et cliquez sur le bouton [+] situé en haut à droite du panneau afin d'ouvrir la boîte de dialogue [Configure Contexts].

  4. Sélectionnez le contexte par défaut, cliquez sur le bouton Edit et renommez le contexte en Test.

  5. Cliquez sur New afin d'ajouter un nouveau contexte nommé Production. Cliquez ensuite sur OK pour fermer la boîte de dialogue.

  6. De retour dans l'onglet Contexts, définissez la valeur de la variable filename sous chaque contexte, en cliquant dans le champ Value respectif et en parcourant votre système jusqu'au fichier délimité.

  7. Cochez la case Prompt près du champ Value de la variable filename, pour que les deux contextes affichent les champs Prompt et saisissez le message à afficher lors de l'exécution.

  8. Pour la variable printOperations, cliquez dans le champ Value sous le contexte Production et sélectionnez false dans la liste. Cliquez dans le champ Value sous le contexte Test et sélectionnez true dans la liste. Cochez la case Prompt sous chaque contexte et saisissez le message à afficher lors de l'exécution.

Configurer les composants

  1. Dans le champ File name/Stream de la vue Basic settings du tFileInputDelimited, saisissez le nom de la variable de contexte correspondante définie précédemment : context.filename.

  2. Définissez manuellement (Built-in) le schéma du fichier. Il contient deux colonnes : key et value.

  3. Acceptez la propagation du schéma défini au composant suivant (tContextLoad).

  4. Dans la vue Dynamic settings du tContextLoad, cliquez sur le bouton [+] pour ajouter une ligne à la table. Dans le champ Code, saisissez context.printOperations afin d'utiliser la variable de contexte printOperations définie précédemment. Notez que la case Print Operations de la vue Basic settings devient grisée et inaccessible.

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

  6. Dans les champs Host, Port, Database, Username et Password, saisissez les variables stockées dans les fichiers délimités et définies dans la vue Contexts : context.host, context.port, context.database, context.username, et context.password respectivement dans cet exemple. Dans le champ Table name, saisissez le nom de la table de base de données à partir de laquelle lire les données, customers pour les deux bases de données de cet exemple.

  7. Dans le champ Schema, saisissez les informations sur le schéma. Si vous avez stocké le schéma dans le nœud Metadata du Repository, sélectionnez-le après avoir sélectionné l'option Repository.

    Dans cet exemple, le schéma des deux bases de données est composé de quatre colonnes : id (de type INT et d'une longueur de 2 caractères), firstname (de type VARCHAR et d'une longueur de 15 caractères), lastName (de type VARCHAR et d'une longueur de 15 caractères) et city (de type VARCHAR et d'une longueur de 15 caractères).

  8. Dans le champ Query, saisissez la requête SQL à exécuter sur la table de base de données spécifiée. Dans cet exemple, cliquez sur Guess Query afin de récupérer toutes les colonnes de la table. Elles s'affichent dans la vue Run grâce au tLogRow.

  9. Dans la vue Basic settings du tLogRow, sélectionnez l'option Table afin d'afficher les enregistrements sous forme de tableau.

Exécuter le Job

  1. Appuyez sur Ctrl+S afin de sauvegarder le Job. Appuyez sur F6 afin d'exécuter le Job avec le contexte par défaut, Test dans ce scénario.

    Une boîte de dialogue s'affiche, vous demandant de spécifier le fichier délimité à lire et de décider d'afficher ou non les paramètres de contexte définis dans la console.

    Si vous le souhaitez, vous pouvez spécifier un fichier autre que celui par défaut. Vous pouvez également décocher la case Show loaded variables si vous ne souhaitez pas voir les variables de contexte dans la console. Afin d'exécuter le Job avec les paramètres par défaut, cliquez sur OK.

    Les paramètres de contexte et le contenu de la table de base de données correspondant au contexte Test s'affichent dans la console Run.

  2. Sélectionnez à présent le contexte Production et appuyez sur F6 afin d'exécuter le Job à nouveau. Lorsque la boîte de dialogue s'affiche, cliquez sur OK pour exécuter le Job avec les paramètres par défaut.

    Le contenu de la table de base de données correspondant au contexte Test s'affiche dans la console Run. Comme la variable printOperations a la valeur false, les paramètres de contexte définis ne s'affichent pas dans la console.