Kettle

Kettle : une autre solution ETL

Kettle est un outil ETL (entièrement graphique) supportant de nombreuses bases de données (en entrée et en sortie) ainsi que des processus complexes de transformations de ces données.
Si vous n’avez pas le temps de faire mu muse avec le produit, voici quelques commentaires sur le produit Kettle, rappelons-le open source gratuit ! Kettle utilise les drivers JDBC pour les connexions aux différentes bases de données. Il existe des possibilités de mettre les données en cache, et l'on peut faire tourner plusieurs transformations en parallèle (voir paragraphe sur la lenteur). Kettle fonctionne sur des bases de données de production possédant des millions d'enregistrements.

L’interface, la convivialité : une qualité


En premier, ce qui vient aux yeux, c’est l’interface unique (développée en Java). Elle parait au premier abord plus fonctionnelle, donc plus agréable à l’œil d’un débutant que son concurrent. La gestion des transformations et des jobs en est facilitée. Cependant, certain trouveront que l’interface est moins séduisante que Talend à cause de son rapprochement avec la DB.

Certains reprochent également la lenteur de Kettle dans certaines opérations. Je tiens à rappeler que pour les tris par exemple il faut paramétrer parfaitement la transformation (nombre de rows pour une passe de tri, usage de la ram / fichiers temporaires…).
Car, en passant par un nombre élevé de fichiers temporaires, on augmente considérablement cette lenteur constatée. Augmenter le nombre de rows en mémoire augmente considérablement le traitement. Il y a aussi une option de compression des fichiers temporaires, mais qui rajoute du temps de traitement tout en diminuant l’espace disque nécessaire…(faut savoir ce que l’on souhaite !).

Tout ça pour dire que la lenteur de Kettle n’est pas une fin en soi.

Deux modes différents

Kettle peut s’utiliser au travers de deux modes distincts, en local ou avec référentiel :

En local : les transformations et les jobs sont stockés et gérés en local sur filesystem.


Avec référentiel : tout le travail du développeur est stocké dans le référentiel PDI/Kettle qui repose sur un schéma dédié créé sur la DB de votre choix (sur système cible par exemple). Il s’agit là d’une fonctionnalité idéale : plus de fichiers à gérer, tout est centralisé. En cas de changement de paramétrage d’une de vos DB, il vous suffira de changer une seule fois la connexion correspondante dans le référentiel ; le changement sera alors répercuté sur toutes les transformations / jobs qui utilisent cette connexion.


Dans tous les outils fournis, Kettle est livré avec des exemples de scripts pour le lancement des jobs / transformations en mode batch. Très utile dans mon contexte actuel (Solaris), on a la possibilité de mettre au point un pool de scripts qui assurent le déclenchement des jobs (certains en parallèle !), leur contrôle ainsi que la reprise sur anomalie.


Une anomalie se remonte très vite avec un simple parseur, voire un Ctrl-F « ano » lors des mises au point. A noter que le lancement d’un job/transformation en interactif (via l’interface) est bien entendu possible.

Globalement, les performances sont globalement au rendez-vous. Bien entendu, plus votre DB sera performante et structurée, meilleur sera le comportement de Kettle.

Défaut : un module de gestion manquant


Il manque cependant un module à Kettle, qui se fait cruellement sentir dès lors que l’on travaille avec de multiples environnements : un gestionnaire de transformations / jobs. Actuellement, pour migrer une transformation ou un job d’un environnement à un autre, il faut passer par une sauvegarde/export local, puis reconnexion au nouveau référentiel pour publication. Un module de gestion des transformations et des jobs serait plus rapide pour gérer au mieux la phase de montée en environnement à l’image d’un « CVS light » ou encore d’un « SourceSafe ».

3 commentaires:

Anonyme a dit…

Globalement, les performances sont globalement au rendez-vous? C'est global tout ça. Merci pour cet article

eznati souhail a dit…

Bonjour
je suis un élève ingénieur en logiciel et système informatique , actuellement en plein stage. si vous me permettez j'aimerais bien savoir s'il y a un moyen pour se connecter à un serveur distant avec pentaho si non quelle est la solution et merci d'avance

cordialement
eznati souhail

Anugraha Jain a dit…

Hi,

We have developed a new gen developer friendly BI framework with some extremely unique features. Would like to give you early access & love to hear your opinion. Please do let me know of how to reach out to you. Would be launching product in 3 weeks from now.

Regards,
Anugraha