Charger de manière réutilisable des données issues d’un fichier Excel en base de données sous Talend Studio

Dans ce tutoriel vous apprendrez comment développer un Job sous Talend Studio chargeant des données issues d’un fichier Excel dans une base de données MySQL en utilisant des métadonnées réutilisables dans d’autres Jobs.

Prérequis :

Composants ETL utilisés dans le traitement :

  • Composants d’extraction ou chargement : tFileInputExcel et tDBOutput.
  • Composants de transformation : Aucun.
  • Composants de médiation : Aucun.
  • Composants d’affichage : Aucun.

Contexte :

Vous disposez du fichier Excel suivant MAILS.xls contenant les mails de personnes identifiées par leurs nom, prénom et une clé primaire :

Vous souhaitez lire le contenu de ce fichier Excel depuis un Job Talend puis le transférer dans une table de base de données MySQL.

Nous avons besoin que les interfaces vers les données sources et cibles soient réutilisables dans d’autres Job Talend. Plutôt que d’utiliser directement des composants Talend d’extraction / chargement dans le Job nous allons donc créer des métadonnées.

Solution :

Depuis MySQL Workbench une nouvelle table est créée dans une base de données MySQL « bdd_cible_dev » :

Les noms de champs de cette table « mails » et leurs types doivent être adaptés aux caractéristiques des données issues du fichier Excel :

Depuis le Studio Talend allez dans la section « Métadonnées » de votre référentiel de projet puis faîtes un clic droit sur « Fichier Excel » suivi de « Créer un fichier Excel » :

A travers cette métadonnées nous créons une interface vers une source de données qui pourra ensuite être réutilisée en tant que source ou cible dans plusieurs Jobs. Afin de faciliter la compréhension des Jobs il est recommandé d’utiliser des conventions de nommage, nous indiquons donc avec le préfixe XLS_ que cette métadonnée pointe vers un fichier Excel. Cliquez sur Suivant :

A l’étape suivante vous indiquez le chemin du fichier Excel à lire puis indiquez la feuille du fichier à lire :

Vous devez ensuite choisir l’encodage de vos données (UTF-8) et cocher « Définir la ligne d’en-tête comme nom de colonne » afin que les noms des champs soient récupérés depuis la première ligne du fichier Excel. Vous pouvez choisir d’ignorer d’autres lignes dans le cas ou les données ne commencent pas en haut du fichier. Actualisez l’aperçu afin de vérifier que la lecture de données est correcte puis passez à l’étape finale :

Dans cette dernière étape vous précisez le type et la longueur de chacun des champs lus depuis le fichier Excel, dans le cas ou les valeurs proposées par défaut ne conviennent pas. Cliquez sur « Terminer » pour finaliser la création de la métadonnée :

Créez un nouveau Job qui sera chargé de lire les donnée du fichier Excel source pour les envoyer vers la base de données cible puis double cliquez sur ce Job afin de l’ouvrir dans l’espace de travail :

Cliquez – déposez la métadonnée « XLSX_MAILS » dans le Job pour l’insérer en tant que composant tFileInputExcel :

Depuis le Studio Talend allez dans la section « Métadonnées » de votre référentiel de projet puis faîtes un clic droit sur « Connexions de bases de données » suivi de « Créer la connexion » :

A travers cette métadonnées nous créons une interface vers une base de données qui pourra ensuite être réutilisée en tant que source ou cible dans plusieurs Jobs. Afin de faciliter la compréhension des Jobs il est recommandé d’utiliser des conventions de nommage, nous ajoutons donc le préfixe CNX_MYSQL au nom de la métadonnée afin d’indiquer qu’il s’agit d’une interface de connexion à une base de données MySQL :

Indiquez les informations de connexion à la base de données bdd_cible_dev dans laquelle la table cible a été créée. A mesure que vous entrez ces informations elles sont automatiquement ajoutées à la chaîne de connexion JDBC. Testez ensuite la connexion et si elle est valide cliquez sur « Terminer » afin de confirmer sa création :

Cliquez – déposez la métadonnée « CNX_MYSQL_BDD_CIBLE_DEV » dans le Job pour l’insérer en tant que composant tDBOutput(MySQL) :

Liez le composant de lecture Excel au composant de chargement en base MySQL par un lien principal. Cliquez ensuite sur le composant d’entrée puis sur l’onglet « Composant » et allez dans les paramètres avancées afin d’adapter la lecture du fichier source à vos besoin. dans notre cas nous supprimons les espaces en début et fin de champs et stoppons la lecture du fichier dès que le lecteur rencontre une ligne vide :

Cliquez ensuite sur le composant de sortie puis sur l’onglet « Composant » et indiquez le nom de la table que vous avez créé dans la base cible. Indiquez ensuite le type d’action sur la table puis sur ses données. Dans notre cas nous souhaitons vider puis remplacer le contenu de la table existante, nous choisissons donc un « Vider la table » puis « Insert » :

Voici toutes les options disponibles pour les actions sur la table cible. Si vous n’avez pas créé au préalable la table dans la base cible vous pouvez indiquer au traitement de le faire à la volée lors de son exécution :

Voici toutes les options disponibles pour les actions sur les données de la table cible :

Cliquez sur l’onglet « Exécuter » pour tester l’exécution de votre Job et vérifiez qu’elle se termine sans erreur :

Allez dans SQL Worbench afin d’afficher les lignes de la table :

La table cible du Job ETL a bien été vidée puis alimentée :

Vous savez désormais comment développer un Job sous Talend Studio chargeant des données issues d’un fichier Excel dans une base de données MySQL en utilisant des métadonnées réutilisables dans d’autres Jobs.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *