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
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
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
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 ».