tContextLoad

Composants Talend Open Studio Guide de référence

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

Fonction

Le composant tContextLoad modifie dynamiquement les valeurs du contexte actif.

Objectif

Le tContextLoad permet de charger un contexte à partir d'un flux entrant.

Ce composant effectue aussi deux contrôles. Il prévient lorsque les paramètres définis dans le flux entrant ne sont pas définis dans le contexte. Il avertit également lorsque la valeur d'un contexte n'est pas initialisée dans le flux entrant.

Notez que ces avertissements ne bloquent pas le traitement.

Propriétés du tContextLoad

Famille du composant

Misc

Basic settings

Schema et Edit Schema

Un schéma est une description de lignes, il définit le nombre de champ qui sont traités et passés au composant suivant.

Le schéma du composant tContextLoad doit être composé de deux colonnes, l'une contenant le nom du paramètre et la deuxième contenant la valeur du paramètre à charger.

 

If a variable loaded, but not in the context

Si une variable est chargée mais n'apparaît pas dans le contexte, choisissez comment doit s'afficher la notification. Sous forme d'erreur (Error), de warning (warning), ou d'information (info).

 

If a variable in the context, but not loaded

Si une variable apparaît dans le contexte mais n'est pas chargée, choisissez comment doit s'afficher la notification. Sous forme d'erreur (Error), de warning (warning), ou d'information (info).

 

Print operations

Cochez cette case pour afficher les paramètres de contexte dans la vue Run.

 

Disable errors

Cochez cette case pour ne pas afficher d'erreur.

 

Disable warnings

Cochez cette case pour ne pas afficher de warning.

 

Disable infos

Cochez cette case pour ne pas afficher d'information.

 

Die on error

Cette case est cochée par défaut et stoppe le Job en cas d'erreur. Décochez cette case pour terminer le traitement avec les lignes sans erreurs, et les lignes contenant les erreurs seront ignorées.

Advanced settings

tStatCatcher Statistics

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

Dynamic settings

Cliquez sur le bouton [+] pour ajouter une ligne à la table. Dans le champ Code, saisissez une variable de contexte afin d'activer ou désactiver dynamiquement l'option Print operations au moment de l'exécution.

Lorsqu'un paramètre dynamique est configuré, l'option Print operations devient inaccessible dans la vue Basic settings.

Pour des exemples sur l'usage des paramètres dynamiques, consultez Scénario 3 : Lire des données dans des bases de données MySQL à l'aide de connexions dynamiques basées sur les variables de contexte et 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. Pour plus d'informations concernant les Dynamic settings et les variables de contexte, consultez le Guide utilisateur du Studio Talend.

Global Variables

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

KEY_NOT_INCONTEXT : les variables sont chargées mais n'apparaissent pas dans le contexte. Cette variable est une variable After et retourne une chaîne de caractères.

KEY_NOT_LOADED : les variables ne sont pas chargées mais apparaissent dans le contexte. Cette variable est une variable After et retourne une chaîne de caractères.

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 s'appuie sur le flux de données pour charger les valeurs de contexte à utiliser. Ainsi, il requiert un composant d'entrée et ne peut pas être un composant de début.

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).

Limitation

Le tContextLoad ne crée aucune variable qui n'a pas été définie dans le contexte par défaut.

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

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.