Astuces de Webmaster

ETL Kettle – Découverte de l’outil d’ETL de Pentaho Data Integration

par Rom's le 24 août 2010 (Architecture, Astuces, Développement Web)

Kettle est un outil d’ETL (Extract, Transform, Load) de la suite BI de Pentaho Data Integration. Son principal intérêt est de récupérer diverses sources dans divers formats, de les traiter, de les transformer, et de former un résultat puis d’exporter dans le format souhaité vers une destination souhaitée.

Tout ceci se fait de façon visuelle en créant des étapes et en éditant le détail de chaque étape. (je sais, ça dépasse.. mais comme ça on peut tout voir ;-) )

Visuel de la préparation de scripts avec Kettle

Il est possible de faire des scripts personnalisés sous forme de script java (javascript)

Exemples de sources et exports possibles :

  • Bases de données (37 bases de données disponibles dont MySQL, Oracle, SQLite, PostgreSQL, MS Access, MS SQL Server, Sybase, Firebird SQL, AS/400,…)
  • Fichiers (XML, TXT, CSV, PSV, TSV ou autres séparateurs, instructions SQL dans fichier,
  • Flux SOAP, REST
  • Récupération ou envoi depuis ou vers des FTP/SFTP/FTPS/over SSH2
  • Possibilité de dézipper ou zipper des fichiers en entrée ou en sortie
  • Envoi / récupération depuis ou vers des e-mails / courriels (suivant sensibilité)

Comme les exemples sont souvent plus parlants, je vais vous donner quelques exemples bien pratiques de choses que l’on peut faire avec un ETL :

  • récupérer un fichier XML à 10 niveaux de données depuis un FTP, l’aplatir sous forme de tableau, mettre à jour les données dans une table MySQL puis l’exporter sous forme de fichier CSV et l’envoyer par e-mail
  • joindre trois fichiers excel (format XLS) et les entrées en base de données en comparant les sources, en dédoublonnant, et en faisant un fichier par type d’erreur possible
  • prendre tout simplement un fichier, renommer des colonnes, en rajouter, normaliser la longueur des champs et le nombre de décimales, enlever les espaces vides et réexporter le tout dans un format souhaité

Les scripts réalisés visuellement sont exportables et installables comme tâches planifiées sur un serveur.

Bon, pour tout ça, je vous conseille de télécharger la version Pentaho Data Integration Spoon 4.0 (http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=spoon+4.0)

Je vous mets ici bientôt quelques exemples de scripts que vous puissiez jouer avec.

:, ,


» Flux RSS du blog

8 Commentaires pour cet article

  • Rom's

    Je ne vous oublie pas pour les exemples, n’hésitez pas à faire des demandes d’exemples de script an attendant, je prioriserai en fonction !

  • sevijc

    Bonjour,
    Je dois importer un projet depuis un programme de gestion qui exporte ses projets en CSV pour l’importer à un autre programme qui exige un format XML a plusieurs niveaux. Mais il me dit que le fichier qu’il soit en CSV ou XML n’est pas un fichier Kettle.

  • Rom's

    Bonjour, je ne comprends pas votre dernière phrase « Mais il me dit que le fichier qu’il soit en CSV ou XML n’est pas un fichier Kettle »
    qui est « il » ?

    Il vous faut créer une transformation d’abord puis utiliser l’étape « extraire depuis un fichier », entrer le chemin de ce fichier, et dans l’onglet champ récupérer les champs et les paramétrer.

    Ensuite, pour transformer en XML, c’est plus compliqué, je vous invite à regarder les exemples dans chemin\vers\votre\pdi\samples\transformations et notamment les exemples dont les noms de fichier commençant par « XML Add »

  • sevijc

    J’ai téléchargé Spoon et quand je veux ouvrir un fichier XML ou CSV, Spoon me dit que « le fichier n’est pas reconnu comme un fichier de Kettle ».

  • sevijc

    Pardon pour la question, je découvre le produit, comment crée-t-on une transformation?

  • Rom's

    fichier > nouveau > transformation
    les .ktr sont les formats gérés par Kettle pour les transformation
    les .kjb sont les formats gérés par Kettle pour les jobs
    les jobs manipulent les fichiers (FTP, copies, …) et font appel aux transformations qui agissent sur les lignes contenues dans les fichiers (transfo CSV to XML, etc.)

  • sevijc

    Et pour le détail de la transformation? On peut le faire directement depuis un fichier? Il faut accéder à une base de données?

  • Rom's

    une fois que vous avez créé une transformation, vous avez un panel d’étapes à disposition à gauche. Le but est de générer un workflow d’étapes pour arriver à vos fins.

    Les étapes sont reliées entre elles par des flèches pour définir l’ordre d’action (pour tirer une flèche d’une étape vers l’autre, vous sélectionnez les deux étapes puis clic droit puis créer un lien ou vous maintenez appuyée la molette d’une étape vers l’autre)

    Vous devez faire une extraction depuis un fichier dans un premier temps comme je vous le disais puis une alimentation vers un fichier XML

    Ainsi que je vous le disais, il vous faut regarder les exemples dans le dossier « samples/ » pour vous aider.

    Vous avez tous les éléments pour résoudre votre problème ici. Si vous n’y parvenez pas, relisez bien mes réponses avant de reposer une question. Si votre question est redondante par rapport à mes réponses, je la supprimerai. Merci de votre compréhension.

Laisser un commentaire


seven - = 1

Vous cherchiez ?

Recherche rapide :

Vous ne trouvez toujours pas ? Laissez un petit commentaire sur un article, qu'on puisse regarder ça de plus près !