Dans ce tutoriel, nous vous expliquerons comment extraire un fichier Excel sous Nifi en préparant le fichier à la transformation. Puis, le document introduit la transformation des données et leur chargement vers une nouvelle source de données. Ce pas à pas a pour objectif de présenter un mini projet bout à bout de L’ETL NIFI.
A travers ce projet, vous découvrirez l’ensemble des fonctionnalités offertes par NIFI, ce qui vous permettra aussi de vous familiariser avec l’outil.
Ce document sera illustré par plusieurs vidéos disponibles sur notre chaîne Youtube, n’hésitez pas à aller y jeter un œil !
Tout au long de ce document, nous nous appuierons sur un fichier Excel qui regroupe les ventes d’un magasin avec les informations suivantes :
Date de la vente,
Informations sur les produits et les commandes.
Avant de débuter, il est essentiel de :
- Installer et ouvrir NIFI sur son poste
- Disposer du fichier xlsx
Préparation du projet
Création d’un groupe :
Cliquer sur le bouton d’association et glisser le bouton sur la page pour créer un nouveau groupe.
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: Extraction
Cliquer sur Apply
Double cliquer sur le groupe pour entrer dedans.
Récupération des données du fichier Excel
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 Récupération Fichier Excel 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 Excel>
- File Filter: <nom du fichier plat à récupérer> (Ventes.xlsx)
- Recurse Subdirectories: <false>
- Polling Interval: 5 sec (Toutes les 5 secondes, NIFI vérifie s’il existe le fichier Ventes)
Cliquer sur Apply
Créer un nouveau processeur en cliquant sur le bouton et en glissant le processeur sur la page.
Dans la nouvelle fenêtre, écrire ConvertExcelToCSV.
Sélectionner ConvertExcelToCSV.
Puis, appuyer sur Add.
Double cliquer sur le nouveau processeur, Cliquer sur l’onglet Settings
Renommer le processeur Conversion Excel en CSV en complétant le champ Name
Dans la partie de droite, Automatically Terminate Relationships, cocher sur failure pour que le processeur s’arrête lorsqu’il est au statut failure.
Cliquer sur Apply, les propriétés n’ont pas besoin d’être configurées. Les paramétrages initiaux sont suffisant à la conversion du Excel en CSV.
Chaque ligne sera séparée par une virgule pour distinguer les valeurs des colonnes.
Relier les processeurs Récupération Fichier Excel et Conversion Excel en CSV entre eux, en cliquant au milieu du premier processeur et en maintenant le clique vers le deuxième processeur.
Cliquer sur ADD
Renommage du fichier Excel d’origine sous Nifi
Les étapes suivantes décrivent comment renommer le fichier d’origine pour l’archiver dans un répertoire spécifique.
Créer un nouveau processeur en cliquant sur le bouton et en glissant le processeur sur la page.
Dans la nouvelle fenêtre, écrire UpdateAttribut.
Sélectionner UpdateAttribut.
Puis, appuyer sur Add.
Double cliquer sur le nouveau processeur.
Cliquer sur l’onglet Settings
Renommer le processeur Renommage Fichier Original en complétant le champ Name :
Cliquer sur l’onglet Properties
Cliquer sur le bouton + (ajouter) en haut à droite de la fenêtre pour ajouter une nouvelle propriété.
Dans la nouvelle fenêtre, dans le champ Property Name.
Entrer le mot “filename” puis cliquer sur OK :
Rentrer l’instruction suivante dans le champ filename :
${filename:prepend(${now():format(“yyyyMMdd_HH-mm-ss_”)})}
Elle ajoute la date et l’heure au nom du fichier :
Cliquer sur Apply
Archivage du fichier Excel d’origine sous Nifi
Créer un nouveau processeur en cliquant sur le bouton avec un rond 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 et cliquer sur l’onglet Settings
Renommer le processeur Archive Fichier Original 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 et renseigner les champs suivants:
Directory: <Renseigner le répertoire où sera stocké le nouveau fichier csv>
Cliquer sur Apply :
Relier les processeurs Conversion Excel en CSV et Renommage Fichier Original entre eux, en cliquant au milieu du premier processeur et en maintenant le clique vers le deuxième processeur.
Dans la nouvelle fenêtre créer la relation lorsque le processeur Conversion Excel en CSV est au statut original.
Pour cela, cocher original puis Apply.
Renouveler l’étape précédente pour relier les processeurs Renommage Fichier Original et Archive Fichier Original entre eux.
Dans la nouvelle fenêtre créer la relation lorsque le processeur Renommage Fichier Original est au statut success.
Pour cela, cocher success puis Apply.
Découpage du fichier Excel sous Nifi
Créer un nouveau processeur en cliquant sur le bouton avec un cercle et en glissant le processeur sur la page.
Dans la nouvelle fenêtre, écrire SplitText.
Sélectionner SplitText .
Puis, appuyer sur Add.
Double cliquer sur le nouveau processeur, Cliquer sur l’onglet Settings
Renommer le processeur Découpage Fichier CSV 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.
Cliquer sur l’onglet Properties
Renseigner les champs suivants :
- Line Split Count: 1
- Remove Trailing Newlines: false pour garder les retours à la ligne
Cliquer sur Apply
Relier les processeurs Conversion Excel en CSV et Découpage Fichier CSV entre eux en cliquant au milieu du premier processeur puis en maintenant le clic vers le deuxième processeur.
Dans la nouvelle fenêtre, créer la relation lorsque le processeur Conversion Excel en CSV est au statut success.
Pour cela, cocher success puis Apply.
Port de sortie du groupe – fin des étapes d’extraction du fichier excel sous Nifi
Sélectionner le bouton avec une flèche sortant d’un carré pour créer un output port qui va permettre de sortir du groupe Extraction.
Ce output marque la fin de l’extraction du fichier Excel.
Relier le processeur Découpage Fichier CSV à cet output port.
Dans le nouvel écran, créer la relation lorsque le statut du processeur Découpage Fichier CSV est à splits.
Cliquer sur Apply
Cliquer n’importe où sur l’écran pour sélectionner aucun des éléments sur la page.
Puis cliquer sur le bouton lecture (flèche vers la droite) pour mettre en action l’ensemble des processeurs.
Sur la dernière relation, vous devriez avoir plus de 100 000 éléments en attente.
Ce résultat est le résultat de la découpe ligne par ligne du fichier Excel.
Résumé:
Dans cette première partie du projet, nous vous avons montré comment extraire un fichier Excel sous Nifi.
L’extraction du fichier Excel et la préparation de ce fichier s’est procédé à travers les étapes suivantes:
- Récupération du fichier Excel
- Conversion du fichier Excel en CSV
- Renommage et archivage du fichier Excel d’origine
- Découpage du fichier CSV ligne par ligne
- Création d’un output port pour que les données sortent du groupe “Extraction” en vue d’être transformées.
Vue générale du projet:
D’autres tutoriels sur Nifi sont disponibles sur le blog :
- Comment transférer des données avec les input/ouput port sous Nifi ?
- Comment extraire et transformer un fichier CSV sous Nifi ?
Si vous le souhaitez vous pouvez aussi voir la vidéo de ce tutoriel sur notre chaîne Youtube.
Pour aller plus loin, vous pouvez aussi extraire et transformer un fichier CSV sous Nifi.
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