Mesurer le flux d'un Job
Le Job suivant permet de recueillir le nombre de lignes traitées. Les mesures sont prises deux fois, une fois après le composant d'entrée, c'est-à-dire avant qu'elles soient filtrées, et après leur filtrage, avant le composant de sortie.
-
Cliquez et déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tMysqlInput, deux tFlowMeter, un tMap, un tLogRow, un tFlowMeterCatcher et un tFileOutputDelimited.
-
Connectez les composants du Job principal à l'aide de liens de type Row main et cliquez sur le libellé pour lui donner un nom plus parlant, par exemple US_States après le composant d'entrée et filtered_states après le tMap.
-
Reliez les composants tFlowMeterCatcher et tFileOutputDelimited à l'aide d'une connexion de type Row main, puisque les données sont transmises au composant de sortie.
-
Dans la vue Component du composant tMysqlInput, configurez les propriétés de connexion sur Repository, si les métadonnées de la table sont stockées dans le Repository. Sinon, sélectionnez l'option Built-in et paramétrez la connexion et le schéma manuellement.
-
Les 50 États des États-Unis sont enregistrés dans la table states. Pour que les 50 entrées soient sélectionnées, la requête à effectuer dans la base de données Mysql est la suivante :
select * from states.
-
Dans l'onglet vertical Advanced settings, sélectionnez l'encodage adéquat (encoding type).
-
Puis sélectionnez le composant suivant, le tFlowMeter, et paramétrez ses propriétés.
-
Cochez la case Use input connection name as label pour réutiliser le nom de la connexion d'entrée dans le fichier log de sortie (tFileOutputCSV).
-
Dans le champ Mode, sélectionnez l'option Absolute puisqu'il n'y a pas de flux de référence. Aucun seuil ne doit être défini dans le champ Threshold pour cet exemple.
Les informations du champ Thresholds sont utilisées dans un outil de monitoring tel que Talend Activity Monitoring Console afin d'obtenir une représentation proportionnelle du flux traité. Consultez cette documentation pour plus d'informations.
-
Puis lancez l'éditeur du tMap pour paramétrer les propriétés de filtrage.
-
Pour cet exemple, glissez et déposez les colonnes ID et State de la zone Input (à gauche) du tMap vers la zone Output (à droite). Aucune variable n'est utilisée pour cet exemple.
-
Dans la table du flux de sortie (ici, la table filtered_states), cliquez sur la flèche dotée d'un (+) pour activer un champ de filtre d'expression.
-
Glissez la colonne State de la zone Input (row2) vers le champ filtre et saisissez un filtre permettant de n'obtenir que les États commençant par la lettre M. L'expression finale ressemble à : row2.State.startsWith("M")
-
Cliquez sur OK pour valider les paramètres.
-
Puis sélectionnez le deuxième composant tFlowMeter et paramétrez ses propriétés.
-
Cochez la case Use input connection name as label.
-
Dans le champ Mode, sélectionnez l'option Relative et dans la liste déroulante Reference connection, sélectionnez US_States comme référence.
-
Une fois de plus, aucun seuil n'est utilisé pour cet exemple, ainsi laissez le champ Threshold vide.
-
Aucun paramètre particulier n'est requis pour le composant tLogRow.
-
Il en va de même pour le composant tFlowMeterCatcher puisque ses propriétés sont limitées au schéma prédéfini contenant les informations de log.
-
Paramétrez éventuellement le composant de sortie de log (tFileOutputDelimited).
-
Cochez la case Append pour logger toutes les mesures du tFlowMeter.
-
Sauvegardez votre Job et appuyez sur F6 pour l'exécuter.
La vue Run affiche le nom des États filtrés tel qu'il a été défini dans le Job.
Dans le fichier csv délimité, le nombre de lignes de la colonne count varie entre le composant tFlowMeter1 et le tFlowMeter2 puisque les données ont été filtrées. La colonne reference affiche cette différence.