Transformer une liste de fichiers en flux de données
Le scénario suivant décrit un Job permettant de faire une boucle sur une liste de fichiers, de récupérer leur nom, ainsi que la date en cours, pour ensuite transformer ces données en un flux qui sera affiché dans la console.
-
Déposez les composants suivants : tFileList, tIterateToFlow et tLogRow de la Palette dans l'espace de modélisation graphique.
-
Connectez le tFileList au tIterateToFlow à l'aide d'un lien Iterate et connectez le Job au composant tLogRow à l'aide d'un lien Row Main.
-
Dans la vue Component du composant tFileList, donnez le chemin d'accès au répertoire contenant la liste de fichiers.
-
Dans cet exemple, les fichiers sont trois fichiers .txt simples stockés dans le répertoire Countries.
-
Inutile de tenir compte de la casse, aussi décochez la case Case sensitive.
-
Ne cochez pas la case Include Subdirectories.
-
Sélectionnez le composant tIterateToFlow et cliquez sur Edit Schema pour modifier le nouveau schéma.
-
Ajoutez deux nouvelles colonnes : Filename de type String et Date de type date. Assurez-vous d'avoir paramétré le bon modèle en Java.
-
Cliquez sur OK pour valider.
-
Notez que ce nouveau schéma apparaît dans le tableau Mapping.
-
Dans chaque cellule de la colonne Value, appuyez sur Ctrl+Espace pour accéder à la liste des variables globales et à celles que vous avez définies.
-
Pour la colonne Filename, utilisez la variable globale : tFileList_1CURRENT_FILEPATH. Elle reprend le chemin d'accès courant pour recueillir le nom de chaque fichier, le Job fait une boucle sur ce répertoire.
-
Pour la colonne Date, utilisez la routine Talend : Talend Date.getCurrentDate().
-
Dans la vue Component du composant tLogRow, cochez la case Print values in cells of a table.
-
Enregistrez votre Job et appuyez sur F6 pour l'exécuter.
Le chemin d'accès apparaît dans la colonne Filename et la date en cours apparaît dans la colonne Date.