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

Propriété du tWaitForSqlData

Famille du composant

Orchestration 

Fonction

Le composant tWaitForSqlData effectue une boucle sur une connexion donnée à la recherche d'un ajout ou d'une suppression de lignes, puis déclenche un sous-Job lorsque la condition est rencontrée.

Objectif

Ce composant permet de déclencher un sous-Job en fonction de la présence de données SQL.

Basic settings

Wait at each iteration (in seconds)

Paramétrez en secondes l'intervalle de temps entre chaque vérification.

 

Max. iterations (infinite if empty)

Nombre de vérifications à effectuer avant que le Job ne s'arrête (si vous ne saisissez rien, la boucle sera infinie).

 

Use an existing connection/Component List

Cochez la case et cliquez sur le composant de connexion adéquat dans la liste Component list pour réutiliser les informations de connexion que vous avez déjà définies.

Note

Lorsqu'un Job contient un Job parent et un Job enfant, la liste Component List présente uniquement les composants de connexion du Job du même niveau. Si vous souhaitez utiliser une connexion existant dans un autre niveau, vérifiez que les composants de connexion disponibles partagent la même connexion.

Pour plus d'informations concernant le partage d'une connexion à travers différents niveaux de Jobs, consultez Use or register a shared DB connection dans tous les composants de base de données que vous utilisez.

Sinon, vous pouvez également désactiver le composant de connexion et utiliser les Dynamic settings du composant, afin de paramétrer manuellement la connexion. Dans ce cas, vérifiez que le nom de la connexion est unique et distinct tout au long des deux niveaux de Jobs. Pour plus d'informations concernant les paramètres dynamiques (Dynamic settings), consultez le Guide utilisateur du Studio Talend.

 

Table to scan

Nom de la table à vérifier.

 

Trigger action when rowcount is

Sélectionnez la condition à rencontrer pour exécuter l'action :

Equal to : égal à

Not Equal to : différent de

Greater than : supérieur à

Lower than : inférieur à

Greater or equal to : supérieur ou égal à

Lower or equal to :inférieur ou égal à.

 

Value

Définissez la valeur à prendre en compte.

 

Then

Sélectionnez l'action à effectuer lorsque la condition est rencontrée : soit arrêter la boucle (exit loop), soit continuer la boucle jusqu'à ce que le nombre d'itération maximum soit atteint (continue loop).

Global Variables

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.

CURRENT_ITERATION : numéro de séquence de l'itération courante. Cette variable est une variable Flow et retourne un entier.

ROW_COUNT : nombre de lignes détectées dans la table. Cette variable est une variable Flow et retourne un entier.

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

Bien que ce composant ait besoin d'un composant de connexion pour ouvrir l'accès à une base de données, il joue aussi le rôle de composant de début (ou de déclenchement) pour le sous-Job à exécuter lorsque la condition est rencontrée. Ainsi, ce composant doit être connecté à un sous-Job via un lien Iterate.

Scénario : Attendre l'ajout de lignes dans une table

Ce scénario décrit un Job lisant la table d'une base de données dans l'attente d'un ajout de données dans cette table, pour ensuite exécuter un sous-Job. Lorsque des données sont ajoutées, le sous-Job effectue un Select* sur la table et affiche le contenu des données insérées dans la console standard.

  • Cliquez et déposez les composants suivants de la Palette dans l'espace de modélisation : tMysqlConnection, tWaitForSqlData, tMysqlInput, tLogRow.

  • Connectez le composant tMysqlConnection au composant tWaitforSqlData à l'aide un lien OnSubjobOK, disponible via le clic-droit.

  • Puis connectez le composant tWaitForSqlData au sous-Job à l'aide d'un lien Iterate puisqu'aucune donnée n'est transférée pour le moment. En effet, le tWaitForSqlData effectue seulement des boucles jusqu'à ce que la condition soit rencontrée.

  • Dans le sous-Job à exécuter si la condition est rencontrée, le composant tMysqlInput est connecté au tLogRow. Puisque cette connexion sert à transférer des données, utilisez un lien de type Row main.

  • Maintenant, paramétrez la connexion à la table devant être vérifiée à intervalles réguliers. Dans l'onglet Basic settings de la vue Component du composant tMysqlConnection, paramétrez les propriétés de connexion à la base de données.

  • Renseignez les champs Host, Port, Database, Username, Password pour ouvrir une connexion à la base de données. Pour plus d'informations, consultez les composants de connexion aux bases de données. Par exemple, pour une base de données Mysql, consultez tMysqlConnection.

  • Dans le champ Encoding, sélectionnez l'encodage adéquat, si nécessaire.

  • Puis sélectionnez le composant tWaitForSqlData, et dans l'onglet Basic settings de la vue Component, paramétrez ses propriétés.

  • Dans le champ Wait at each iteration, paramétrez en secondes l'intervalle entre chaque itération.

  • Dans le champ Max iterations, saisissez le nombre d'itérations maximum à effectuer avant que le Job ne s'arrête.

  • Pour utiliser le composant tWaitForSqlData, il faut qu'une connexion soit ouverte pour effectuer le nombre de boucles défini. Sélectionnez la connexion adéquate (s'il y en a plusieurs) dans la liste déroulante Component List.

  • Dans le champ Table to scan, saisissez le nom de la table à scanner. Dans cet exemple : test_datatypes.

  • Dans les champs Trigger action when rowcount is et Value, sélectionnez la condition à rencontrer afin de lancer le sous-Job. Pour cet exemple, le nombre de lignes à prendre en compte dans la table scannée soit être supérieur ou égal à 1, ainsi sélectionnez be greater or equal to 1.

  • Dans le champ Then, sélectionnez l'action à effectuer lorsque la condition est rencontrée avant que le nombre maximum d'itérations défini ne soit atteint. Dans cet exemple, dès que la condition est rencontrée, la boucle devrait s'arrêter.

  • Puis paramétrez le sous-Job à exécuter lorsque la condition est rencontrée. Dans cet exemple, le sous-Job sélectionne les données de la table scannée et les affiche dans le console.

  • Sélectionnez le composant tMysqlInput, et dans l'onglet Basic settings de la vue Component, paramétrez la connexion à la table.

  • Si la connexion est stockée dans le Repository, sélectionnez-la dans la liste déroulante. Sinon, cochez la case Use an existing connection et sélectionnez le composant de connexion correspondant dans la liste.

  • Dans cet exemple, le schéma correspondant à la structure de la table est stocké dans le Repository.

  • Dans le champ Table Name, renseignez le nom de la table à partir de laquelle les données seront extraites, Test_datatypes.

  • Puis dans le champ Query, saisissez la commande Select permettant d'extraire le contenu de la table.

  • Pour cet exemple, laissez les propriétés par défaut du composant tLogRow.

Avant d'exécuter le Job, assurez-vous que la table à scanner (test_datatypes) est bien vide, afin que la condition (greater or equal to 1) soit rencontrée. Puis exécutez le Job via le raccourci F6. Avant la fin de la boucle, ajoutez une ou deux lignes à la table test_datatypes afin que la condition soit rencontrée.

Le Job s'arrête lorsque les données ajoutées à la table sont détectées lors de la boucle et le contenu de la table est affiché dans la console.