Scénario 2 : Trouver des fichiers dupliqués entre deux dossiers - 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

Le scénario suivant décrit un Job qui fait une boucle sur deux dossiers, transforme les résultats de l'itération en flux de données afin d'obtenir une liste de noms de fichiers puis affiche les doublons dans la console Run. Ce scénario peut servir de préparation pour la fusion de deux dossiers par exemple.

Déposer et relier les composants

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : deux tFileList, deux tIterateToFlow, deux tFileOutputDelimited, un tFileInputDelimited, un tUniqRow et un tLogRow.

  2. Reliez le premier tFileList au premier tIterateToFlow à l'aide d'un lien Row > Iterate et reliez le premier tIterateToFlow au premier tFileOutputDelimited à l'aide d'un lien Row > Main afin de former le premier sous-Job.

  3. Reliez le second tFileList au second tIterateToFlow à l'aide d'un lien Row > Iterate et reliez le second tIterateToFlow au second tFileOutputDelimited à l'aide d'un lien Row > Main afin de former le deuxième sous-Job.

  4. Reliez le tFileInputDelimited au tUniqRow à l'aide d'un lien Row > Main et reliez le tUniqRow au tLogRow à l'aide d'un lien Row > Duplicates afin de former le troisième sous-Job.

  5. Reliez les trois sous-Jobs à l'aide de liens Trigger > On Subjob Ok afin qu'ils soient déclenchés l'un après l'autre. Nommez ensuite les composants afin de mieux identifier leur rôle dans le Job.

Configurer les composants

  1. Dans le champ Directory de la vue Basic settings du premier tFileList, saisissez le chemin vers le premier dossier dans lequel vous souhaitez lire le nom des fichiers, E:/DataFiles/DI/images dans ce scénario. Laissez les autres paramètres tels qu'ils sont.

  2. Double-cliquez sur le premier tIterateToFlow afin d'afficher sa vue Basic settings.

  3. Double-cliquez sur le bouton [...] situé à côté de Edit schema afin d'ouvrir la boîte de dialogue [Schema]. Définissez le schéma du fichier texte dans lequel le second composant doit écrire les noms des fichiers. Une fois fait, cliquez sur OK afin de fermer la boîte de dialogue et propager les changements au composant suivant.

    Dans cet exemple, le schéma contient une seule colonne : Filename.

  4. Dans le champ Value de la table Mapping, appuyez sur Ctrl+Espace afin d'ouvrir la liste d'autocomplétion des variables. Sélectionnez la variable globale ((String)globalMap.get("tFileList_1_CURRENT_FILE")) afin de lire le nom de chaque fichier du dossier d'entrée. Ce dernier sera ensuite inséré dans un flux de données et passé au composant suivant.

  5. Dans le champ File Name de la vue Basic settings du premier tFileOutputDelimited, saisissez le chemin vers le fichier texte contenant les noms des fichiers provenant du flux entrant, D:/temp/tempdata.csv dans cet exemple. La configuration du premier sous-Job est ainsi terminée.

  6. Configurez le deuxième sous-Job de la même manière que le premier sous-Job. Cependant :

    • Dans le champ Directory de la vue Basic settings du second tFileList, saisissez le chemin vers l'autre dossier dans lequel vous souhaitez lire les noms des fichiers, E:/DataFiles/DQ/images dans ce scénario.

    • Dans la vue Basic settings du second tFileOutputDelimited, cochez la case Append afin que les noms des fichiers précédemment écrits dans le fichier texte ne soit pas écrasés.

  7. Dans le champ File name/Stream de la vue Basic settings du tFileInputDelimited, saisissez le chemin vers le fichier texte contenant la liste de noms de fichiers, D:/temp/tempdata.csv dans ce scénario. Définissez le schéma du fichier qui, dans le présent exemple, contient une seule colonne, Filename.

  8. Dans la vue Basic settings du tUniqRow, cochez la case Key attribute pour la colonne, Filename in this exmaple.

  9. Dans la vue Basic settings du tLogRow, sélectionnez l'option Table (print values in cells of a table) pour un meilleur affichage des résultats d'exécution du Job.

Exécuter le Job

  1. Appuyez sur Ctrl+S afin de sauvegarder le Job.

  2. Cliquez sur Run ou appuyez sur F6 afin d'exécuter le Job.

    Tous les fichiers dupliqués entre les deux dossiers sélectionnés sont affichés dans la console.

Pour d'autres scénarios utilisant le tFileList, tFileCopy.