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

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

EnrichVersion
6.4
task
Gouvernance de données > Systèmes tiers > Composants Orchestration (Intégration)
Qualité et préparation de données > Systèmes tiers > Composants Orchestration (Intégration)
Création et développement > Systèmes tiers > Composants Orchestration (Intégration)
EnrichPlatform
Studio Talend

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 Propriétés du 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.