Ce tutoriel présente l’extraction et la transformation d’un fichier csv sous Nifi, puis la création d’un nouveau fichier csv avec les nouvelles données transformées.
Il fait suite au pas à pas d’extraction excel sous Nifi, afin de présenter les fonctionnalités de L’ETL NIFI
Avant de commencer, il est essentiel de :
- Installer et ouvrir NIFI sur son poste
- Créer un fichier csv avec les lignes suivantes:
0001,smith,joe,garbage field,10-09-2015,null,6.8,T
0002,gupta,kaya,junk feild,08-01-2014,A,7.9,A 0003,harrison,audrey,no comment,01-17-2016,T,5.1,A 0004,chen,wen,useless words,12-21-2015,B,8.1,A 0005,abad,zaid,*65 fr @abc.com,03-21-2014,A,7.8,null |
- Nommer le fichier : csv et de le sauvegarder sur votre poste.
Création d’un groupe
Cliquer sur le bouton et glisser le bouton associer (2 carrés dans un carré) sur la page pour créer un nouveau groupe.
Il est important de noter que dans ce groupe, il y aura l’ensemble des étapes du processus de ce tutoriel représentées par des processeurs.
Renseigner le champ Process Group Name en nommant le groupe : Tutoriel 1 – CSV
Cliquer sur Apply
Double cliquer sur le groupe pour rentrer dedans.
Extraction des données du fichier csv sous Nifi
Créer votre premier processeur en cliquant sur le bouton et en glissant le processeur sur la page.
Dans la nouvelle fenêtre, écrire Getfile
Sélectionner Getfile
Puis, appuyer sur Add
Double cliquer sur le nouveau processeur,
Cliquer sur l’onglet Settings
Renommer le processeur GetFile CSV en complétant le champ Name
Cliquer sur l’onglet Properties
Renseigner les champs suivants :
- Input Directory : <Chemin du répertoire où est stocké le fichier csv>
- File Filter: <nom du fichier plat>
- Recurse Subdirectories: <false>
Cliquer sur Apply
Créer un nouveau processeur en cliquant sur le bouton représentant un rond et en glissant le processeur sur la page.
Dans la nouvelle fenêtre, écrire SplitText
Sélectionner SplitText
Puis, appuyez sur Add
Double cliquer sur le nouveau processeur
Cliquer sur l’onglet Settings
Renommer le processeur SplitTextCSV en complétant le champ Name
Dans la partie de droite, Automatically Terminate Relationships, cocher failure et original , pour que le processeur s’arrête lorsqu’il est au statut failure ou original.
Cliquer sur Apply
puis sur l’onglet Properties
Renseigner les champs suivants :
- Line Split Count: 1
- Remove Trailing Newlines: false
Cliquer sur Apply
Relier les deux processeurs entre eux, en cliquant au milieu du premier processeur, puis en maintenant le clic vers le deuxième processeur.
Cliquer sur Apply
Tester le premier processeur en sélectionnant le processeur GetFile CSV
puis cliquer sur le bouton pour mettre en marche le processeur.
Sur la page, faite un clic droit,
puis appuyer sur refresh.
Vous devriez voir apparaître un élément en attente dans la relation.
Pour voir l’élément dans la relation, faire un clic droit dans la relation.
Puis sélectionner List queue
Dans le nouvel écran, cliquer sur l’oeil pour voir le contenu de l’élément.
Un nouvel onglet s’ouvre avec le contenu de l’élément :
On retrouve bien les lignes du fichier csv.
Fermer la fenêtre.
Transformation des données du fichier csv sous Nifi
Créer un nouveau processeur en cliquant sur le bouton et en glissant le processeur sur la page.
Dans la nouvelle fenêtre, écrire ReplaceText
Sélectionner ReplaceText
Puis, appuyez sur Add
Double cliquer sur le nouveau processeur,
Cliquer sur l’onglet Settings
Renommer le processeur par RemoveLastColumn en complétant le champ Name
Dans la partie de droite, Automatically Terminate Relationships, cocher la case failure pour que le processeur s’arrête lorsqu’il est au statut failure.
Cliquer sur l’onglet Properties
Renseigner les champs suivants :
- Search Value: ^((?:.*,){3})(.*,)((?:.*){3})(.*) (Pour chaque ligne, cette RegEx crée trois groupes)
- Replacement Value: $1$2 (Récupère le groupe 1 et 2. Ignore le groupe 3. Cela supprime donc la dernière colonne.)
- Evaluation Mode: Line-by-Line
Cliquer sur Apply
L’expression régulière paramétrée précédemment, créé trois groupes.
Ci-dessous le simulateur de RegEx qui représente ces groupes.
En paramétrant $1$2, le processeur garde le groupe 1 et 2, soit les couleurs verte et rouge.
Relier les processeurs SplitTextCSV et RemoveLastColumn entre eux en cliquant au milieu du premier processeur puis en maintenant le clique vers le deuxième processeur.
Dans la nouvelle fenêtre, cocher uniquement sur split pour créer la relation.
Les statuts failure et original s‘arrêteront automatiquement lorsque le processeur SplitTextCSV rencontre ces statuts. iIl n’est donc pas nécessaire de créer les relations.
Cliquer sur Apply
Tester le processeur SplitTextCSV en le sélectionnant puis cliquer sur le bouton lecture (flèche vers la droite) pour mettre en marche le processeur.
En rafraîchissant la page, on peut observer qu’il y a maintenant 5 éléments en attente qui représente les lignes du fichier csv découpée ligne par ligne.
Créer un nouveau processeur en cliquant sur le bouton et en glissant le processeur sur la page.
Dans la nouvelle fenêtre, écrire MergeContent
Sélectionner MergeContent
Puis, appuyez sur Add.
Double cliquer sur le nouveau processeur, puis cliquer sur l’onglet Settings
Renommer le processeur MergeContent en complétant le champ Name
Dans la partie de droite, Automatically Terminate Relationships, cocher sur failure et original pour que le processeur s’arrête lorsqu’il est au statut failure et original
Pour ce processeur, il n’est pas nécessaire de modifier ses propriétés.
Cliquer sur Apply
Relier les processeurs RemoveLastColumn et MergeContent entre eux en cliquant au milieu du premier processeur puis en maintenant le clique vers le deuxième processeur.
Dans la nouvelle fenêtre cocher uniquement sucess pour créer la relation.
Cliquer sur Apply
Tester le processeur RemoveLastColumn en le sélectionnant, puis cliquer sur le bouton pour mettre en marche le processeur.
En rafraîchissant la page, on peut observer qu’il y a toujours 5 éléments en attente qui représente les lignes du fichier csv découpées ligne par ligne.
Création du nouveau fichier csv sous Nifi avec les nouvelles données
Créer votre premier processeur en cliquant sur le bouton add processor et en glissant le processeur sur la page.
Dans la nouvelle fenêtre, écrire PutFile
Sélectionner PutFile
Puis, appuyez sur Add
Double cliquer sur le nouveau processeur, cliquer sur l’onglet Settings
Renommer le processeur PutNewFileCSV en complétant le champ Name
Dans la partie de droite, Automatically Terminate Relationships, cocher sur failure et success pour que le processeur s’arrête lorsqu’il est au statut failure et success
Cliquer sur l’onglet Properties
Renseigner les champs suivants :
- Directory: <Renseigner le répertoire où sera stocké le nouveau fichier csv>
Cliquer sur Apply
Tester le processeur MergeContent en le sélectionnant puis cliquer sur le bouton lecture (flèche vers la droite) pour mettre en marche le processeur.
En rafraîchissant la page, on peut observer qu’il y a maintenant 1 élément en attente.
Les 5 sont maintenant rassemblés.
Tester le dernier processeur PutNewFileCSV en le sélectionnant puis cliquer sur le bouton lecture pour mettre en marche le processeur.
Tous les éléments ont bien été traités :
Ouvrir le nouveau fichier Excel généré.
Vous vous apercevrez que la dernière colonne a été supprimée et devez obtenir le résultat suivant :
Pour compléter, nous vous invitons à découvrir la vidéo de ce tutoriel sur notre chaîne Youtube !
Depuis plus de 15 ans maintenant, je travaille sur des sujets liés à la BI et à l’amélioration des processus. J’ai participé à un grand nombre de projets en tant que leader technique sur de nombreuses technologies. De nature pédagogue, je donne également des cours de langage de programmation.
N’hésitez pas à me faire un retour sur cet article ou à me contacter sur LinkedIn pour échanger sur ces sujets!
Alexis
Laisser un commentaire