Pour savoir où on va, il faut savoir d'où l'on vient

Vous avez
une question ?
Un projet ?

Contactez nous !
 

Contactez-nous

Vous avez une question ? un projet ? 
Vous souhaitez plus d'informations sur un produit ? sur notre offre ? 
Contactez-nous, on vous répond sous 4H.

retour

Pentaho Data Integration

Pentaho Data Integration

Présentation

Pentaho Data Integration (PDI) est un ETL open source qui permet de concevoir et exécuter des opérations de manipulation et de transformation de données.

Grâce à un modèle graphique à base d’étapes, il est possible de créer sans programmation des processus composés d’imports et d’exports de données, et de différentes opérations de transformation, telles que des conversions, des jointures, l’application de filtres, ou même l’exécution de fonctions javascript.

PDI sous le nom de Kettle est devenu open source à partir de la version 2.2 et a rapidement intégré le projet de plateforme décisionnelle Pentaho1 (voir plus loin dans ce livre blanc) qui l’a renommé depuis en Pentaho Data Integration.

Au moment où nous écrivons ces lignes, Pentaho Data Integration est disponible dans sa version 4.1. De nouvelles fonctionnalités sont apparues facilitant notamment le partage d’un référentiel entre plusieurs développeurs, l’utilisation de métadonnées dans les transformations (pour personnaliser une transformation rapidement).

Dans sa version Entreprise Edition, Pentaho, l'éditeur de PDI, propose de suivre l’exécution des transformations ETL via la console d'administration(en mode web).

PDI propose un module appelé Agile BI permettant au développeur ETL de valider directement les données en affichant des rapports dans PDI. Ce module n'est pas libre mais est mis à disposition gratuitement par Pentaho. Il est basé sur Pentaho Analyzer (le nouveau client OLAP disponible en version Enterprise).

Pentaho Data Integration présntation

Module AgileBI de Pentaho Data Integration

PDI propose l’intégration avec la solution Apache Hadoop2 pour le traitement de très gros volumes de données de façon parallèle. Ceci permet notamment d'accéder à des données de type Amazon S3 et HIVE via Hadoop.

Fonctionnalités

PDI permet de créer deux types de processus :

  • Les transformations : traitements effectués au niveau d'une ou plusieurs bases de données comprenant des opérations de lecture, de manipulation et d'écriture.
  • Les tâches : traitements de plus haut niveau, combinant des actions telles que l'exécution d'une transformation PDI, l'envoi d'un mail, le téléchargement d'un fichier ou le lancement d'une application. Il est possible d'exécuter des actions différentes en fonction de la réussite ou de l'échec de chaque étape.

PDI est également utilisable avec un référentiel partagé. Ainsi plusieurs développeurs peuvent utiliser des objets communs. Ce référentiel est stocké au sein d’une base de données relationnelle.

Le développeur peut donc facilement s'y connecter et changer de référentiel.

PDI peut se connecter sur un grand nombre de bases de données, dont Oracle, Sybase, MySQL, PostgreSQL, Informix, SQLServer et
bien d’autres, et peut également utiliser des données provenant de fichiers texte, XML et Excel.

PDI dispose :

  • de détecteurs de présence de fichier et lecture de répertoire
  • de connecteurs en lecture et écriture avec des dimensions/cubes MOLAP Palo
  • d'un connecteur LDAP et d'un lecture fichier LDIF
  • d'un connecteur SalesForce (lecture)

La liste des plug-ins est disponible sur : http://wiki.pentaho.com/display/EAI/List+of+Available+Pentaho+Da
ta+Integration+Plug-Ins

Les transformations et les tâches sont créées par glisser-déposer des différentes étapes du processus. Des assistants sont disponibles à chaque étape et permettent par exemple de générer automatiquement les requêtes de lecture et de création de tables.

Pentaho Data Integration fonctionnalité

Les applications

PDI se compose de 3 applications :

  • Spoon : environnement graphique de création et d'exécution de transformations et de tâches.
  • Pan : application en ligne de commande permettant de lancer l'exécution d'une transformation donnée.
  • Kitchen : application en ligne de commande permettant de lancer l'exécution d'une tâche donnée.

Pan et Kitchen sont utilisés pour planifier l’exécution des transformations et des tâches.

En installant seulement le très léger outil Pan sur plusieurs serveurs, les interfaces lancées par PDI vont pouvoir être exécutées sur plusieurs serveurs simultanément. On parle dans ce cas d’exécution en mode grappe. Vous avez ainsi le moyen de maitriser le temps de fonctionnements de vos interfaces lorsque vos « fenêtres » de nuit sont réduites.

Planification

Il est généralement souhaitable que des transformations ou tâches créées avec PDI s'exécutent périodiquement. C'est notamment le cas pour les tâches de synchronisation ou de création d'entrepôts de données.

PDI n'intègre pas directement de planificateur de tâches. L'exécution repose donc sur un système externe, tel que les planificateurs de tâches de Windows ou d'Unix.
En association PDI Enterprise avec la plateforme Pentaho et via la console d'administration de Pentaho, il est possible de suivre
l’exécution de traitements PDI.

Utilisation

Dans le contexte du décisionnel, PDI va servir à constituer un datawarehouse, en réalisant l'import des données depuis différentes sources, leur consolidation et leur mise en forme.
L'utilisation de PDI présente plusieurs avantages par rapport à des solutions à base de scripts :

  • La création de flux de données complexes est extrêmement simple
  • La maintenance est beaucoup plus aisée car tous les flux de données sont visibles d'un simple coup d'œil dans une interface unique et centralisée.

PDI pourra également trouver sa place dans tout projet non décisionnel qui a besoin d'exécuter périodiquement des traitements sur certaines données ou des synchronisations entre différentes bases.

Exemple

Détaillons les étapes nécessaires pour la création et le lancement d'une synchronisation entre 2 tables contenues dans des bases
différentes :

  1. Déposer un objet « Extraction depuis table » dans l'espace de travail.
  2. Éditer l'objet « Extraction depuis table », choisir la source de données et la table concernée. Une requête SQL est générée automatiquement mais elle peut être modifiée librement.
  3. Déposer un objet « Insertion dans table » dans l'espace de travail.
  4. Lier ces 2 objets.
  5. Éditer l'objet « Insertion dans table », choisir la source de données et le nom de la table. Kettle prend en charge la création d'une nouvelle table ou la modification d'une table existante, en utilisant les informations transmises par les étapes précédentes.
  6. Lancer la synchronisation.
Pentaho Data Integration exemple

Conclusion

PDI est un outil efficace pour réaliser rapidement tout type de traitements sur des bases de données. Nécessaire dans la plupart des projets décisionnels, il sera également très utile dans tout projet utilisant des bases de données et demandant des opérations de synchronisation ou d'export.
PDI a l’avantage d’être performant, simple d’utilisation, entièrement open source et d’être intégré à la suite décisionnelle Pentaho présentée plus loin.