Dans ce deuxième tutoriel nous allons voir ensemble comment créer un fichier csv. Si vous n’avez pas suivi le premier tutoriel « Lecture fichier » je vous invite à y faire un tour. Nous allons réutiliser certains prérequis évoqués dans ce dernier.
Dans ce deuxième tutoriel nous allons voir ensemble comment créer un fichier csv. Si vous n’avez pas suivi le premier tutoriel « Lecture fichier » je vous invite à y faire un tour. Nous allons réutiliser certains prérequis évoqués dans ce dernier.
Normalement, si vous avez bien suivi le tuto précédent, vous avez toujours votre projet nommé « tutoriels_talend ». Je vous invite à l’ouvrir et à créer un nouveau job que vous pouvez appeler « Ecriture_fichier ».
Une fois créé, ajoutez un composant tFixedFlowInput puis allez sur l’onglet « Composant ».
Ce composant permet de générer de la donnée.
Modifiez le schéma comme suit :
Toujours dans l’onglet « Composant » mettez le nombre de lignes à « 3 » puis remplissez les valeurs des champs ajoutés comme sur l’image ci-dessous.
Ajoutez maintenant un composant tFileOutputDelimited. C’est ce composant qui vous permettra de créer le fichier csv contenant les données générées par le tFixedFlowInput.
Reliez les deux composants par une connexion de type « Main ».
Si Talend vous propose de propager les modifications, cliquez sur « Yes ».
Dans l’onglet Composant du tFileOutputDelimited cliquez sur l’icône permettant de modifier le schéma.
Vous avez deux schémas, celui d’entrée (tFixedFlowInput) à gauche et celui de sortie (tFileOutputDelimited) à droite.
Vous pouvez remarquer que Talend a automatiquement créé le schéma de sortie pour vous. Cependant libre à vous de refuser de propager les modifications lorsqu’il vous le propose et de le définir manuellement.
Vous pouvez fermer cette fenêtre en cliquant sur « OK ».
Dans l’onglet « Composant » vous pouvez renseigner le chemin et le nom du fichier de sortie.
Exécutez le job et rendez-vous dans le répertoire de sortie. Vous pouvez ouvrir le fichier généré et voir les données que Talend a ajouté.
On peut donc voir que Talend a rempli le fichier csv avec les valeurs que nous lui avons défini.
Je vous l’accorde l’intérêt ici est assez limité. Nous allons maintenant voir comment peaufiner ce job.
Avant d’aller plus loin, nous allons faire un petit aparté sur le versionnage de vos jobs, je vous invite donc à fermer ce job à l’aide de la croix en haut du job designer.
Rendez-vous maintenant sur le panneau de gauche nommé « Référentiel », faite un clic droit sur votre job et sélectionnez « Editer les propriétés ». Une fenêtre semblable à celle-ci devrait s’ouvrir, je vous invite à cliquer sur le petit « m ». Observez le résultat dans le champ « Version ».
La version a été incrémentée, vous venez sans le savoir de faire une sauvegarde de votre job. Cela veut dire que vous allez pouvoir modifier votre job, d’ailleurs c’est ce nous allons faire, mais en gardant la version 0.1 en sauvegarde.
Ainsi vous pourrez toujours revenir sur la version précédente.
Je vous invite également à modifier la description en ajoutant une ligne sur les modifications apportée sur la version « 0.2 ».
Cliquez sur « Finish ».
Pour revenir à une version précédente, il vous suffit de faire un clic droit sur votre job et sélectionner « Ouvrir une autre version ». Sélectionnez ensuite la version à ouvrir et cliquez sur « Finish ».
Vous savez maintenant comment versionner vos jobs, et je vous invite à vraiment être rigoureux là-dessus, cela vous permet d’avoir un historique et de pouvoir revenir en arrière si vous commettez une erreur.
Vous pouvez désormais ouvrir la version 0.2 de votre job en double cliquant sur ce dernier dans le panneau « Référentiel ».
Supprimez votre tFixedFlowInput et remplacez-le par un tRowGenerator.
Modifiez le schéma afin qu’il corresponde à l’image ci-dessous.
Ouvrez maintenant « l’éditeur RowGenerator », nous allons utiliser les méthodes de Talend afin de générer des données. Configurez-le comme l’image suivante.
Pour le champ id : Dans fonction sélectionnez Numeric.sequence(String,int,int) et dans l’onglet paramètres de la fonction, mettez « personne » comme valeur du paramètre « sequence identifier », 1 pour « start value » et 1 pour « step ».
Traduisons ce que l’on vient de faire.
Le champ « id » est de type « int » il peut prendre comme valeur seulement des entiers, nous avons donc créé une séquence « personne », qui démarre a 1 et s’incrémente de 1 en 1.
Pour le champ adresse, sélectionnez TalendDataGenerator.getUsStreet(), cette méthode permet de générer de manière aléatoire un nom de rue.
Fixez le nombre de lignes à 5 pour le RowGenerator.
Vous pouvez cliquer sur « OK » et ajouter une connexion de type « Main » entre les deux composants.
Remarquez que sur notre tFileOutputDelimited un point d’exclamation est présent, si vous passez la souris dessus, vous verrez que le schéma du lien d’entrée est différent de celui du composant. Ouvrez le schéma tFileOutputDelimited et constatez.
Vous pourriez modifier manuellement le schéma, mais imaginez si au lieu d’avoir deux colonnes nous en avions une bonne cinquantaine ? Vous n’avez pas envie n'est-ce pas ?
Rassurez-vous, vous n’avez qu’à cliquer sur les doubles flèches encadré en rouge sur l’image précédente.
Cliquez sur « OK » et observez, le schéma a été changé automatiquement en trois clics.
Cliquez de nouveau sur « OK » afin d’enregistrer les modifications du schéma.
Vous pouvez voir que l’avertissement de Talend sur votre composant a disparu.
Notez également que j’ai modifié le nom du fichier de sortie, étant donné que nous générons des adresses, il est judicieux de donner un nom explicite au fichier csv les contenant.
Remarque : Vous pouvez bien sûr garder le même nom de fichier que précédemment, cependant veillez à supprimer le fichier généré lors de la précédente exécution sinon Talend vous générera une erreur.
Une fois que vous avez exécuté votre job, et qu’il s’est correctement terminé, rendez-vous dans le répertoire de destination de votre fichier, et ouvrez le.
Le contenu de la colonne « B » sera sûrement différent de votre côté, rappelez-vous, nous générons cette donnée de maniéré aléatoire.
Remarquez qu’il manque quelque chose afin que notre fichier soit parfait. En effet un en-tête aurait été bienvenue. Nous allons donc l’ajouter.
Cliquez sur votre composant tFileOutputDelimited et ouvrez l’onglet « Composant » puis cochez « Inclure l’en-tête »
Relancez votre job, en pensant bien à supprimer le fichier généré précédemment puis observez le résultat.
Parfait, notre en-tête est bien présent. C’est quand même plus compréhensible.
Ce tutoriel est désormais terminé, n'hésitez pas à nous suivre sur les réseaux sociaux afin d'être tenu informé des derniers tutos !