La parution récente du livre blanc « Les ETL Open Source, une réelle alternative aux solutions propriétaires » sur notre site web a déjà suscité de nombreuses demandes d’informations, ainsi que quelques compliments sur le travail d’étude et de synthèse effectué par le pôle Business Intelligence d’Atol CD.

Les responsables des projets Pentaho Data Integration et Talend nous ont ainsi apporté plusieurs compléments et remarques très constructives sur leurs ETL respectifs, ainsi nous profitons de l’ouverture de notre blog technique pour diffuser ceux-ci.

Talend Open Studio :

Quelques précisions de la part de Fabrice Bonan, Directeur Général de Talend :

  • Depuis la version 2.3, la librairie de composants de Talend Open Studio inclut plus de 250 composants
  • Au travers du composant générique JDBC tJDBCSP, Talend peut appeler les procédures stockées de n’importe quel SGBD (comme Kettle)
  • Talend prend en charge complètement la norme JMS au travers des composants tMomInput et tMomOutput
  • Talend gère de façon native le transcodage par table de référence, les jointures hétérogènes ainsi que les jointures internes (left outer join mode), externe (right join) avec les modes « First Match », « Last Match » et « All Matches » (produit cartésien). En mode ELT, T.O.S. supporte nativement toutes les jointures ANSI.
  • Des briques Open Source Commerciales permettent l’automatisation de la mise en production, la gestion de grappes de serveurs (grid computing, load balancing, gestion du fail over), la visualisation de l’historique et des stats de traitements des jobs (temps de traitement, erreurs, alertes).
  • Talend permet la définition de n’importe quel format de logs. Celles-ci peuvent être envoyées directement au composant tMap pour réorganiser les colonnes, les filtrer, etc…

Pentaho Data Integration (Kettle) :

Plusieurs échanges avec Matt Casters (le créateur de Kettle) ont permis d’affiner les tests comparatifs entre Kettle et Talend Open Studio, notamment les essais n° 4, 5 et 6 du livre blanc (pages 26 à 35).

En effet, dans ces tests, l’étape « Database Lookup » (qui sert à récupérer la description du produit dans la table [produits] à partir de son code) est loin d’être la plus performante.

Matt Casters suggère en effet d’utiliser un « Stream Lookup » qui permet d’effectuer la recherche directement sur les données montées en mémoire après un chargement via un « Table Output« .

Vous trouverez de plus amples informations sur les différentes étapes de lookup disponibles dans Kettle sur le wiki de pentaho.

Dans notre livre blanc, les temps de traitement obtenus avec Kettle pour le test 6 étaient très élevés en comparaison avec Talend Open Studio.

Ci-dessous, le graphe extrait de notre livre blanc indiquait un écart de performance très important pour 1 million de lignes traitées: 602 secondes pour Kettle contre 28 pour Talend.

Diagramme

En remplaçant l’étape « Database Lookup » par un « Stream Lookup », les temps de traitement sont améliorés de façon très conséquente.

Pour 1 million de lignes, on passe ainsi de 602 à 88 secondes pour Kettle :

Diagramme

La transformation Kettle associée est la suivante :

streamlookup1

Des gains de performance ont encore été obtenus avec la méthodologie suivante:

  • Augmentation de la taille de la JVM disponible (passage de 256Mo à 750Mo)
  • Utilisation de la dernière Release v3.0.3 de Kettle (merci à Matt pour la fourniture de cette version encore non disponible sur SourceForge)
  • Remplacement de l’étape JavaScript par 2 étapes successives finalement moins gourmandes en mémoire: ajout de constante + calcul

On obtient alors au final un temps de traitement de 42 secondes pour Kettle (toujours pour 1 million de lignes en entrée).

stream_calcul

Pour conclure :conclusion

42 secondes pour Kettle et 28 secondes pour Talend Open Studio pour réaliser un traitement d’intégration de données complexe sur un fichier CSV comprenant un million de lignes, voila qui devrait sans aucun doute interpeller les utilisateurs actuels d’ETL commerciaux… !

Comme nous l’avions déjà indiqué dans notre livre blanc, Kettle et Talend sont deux excellents ETL Open Source.

Maintenant, c’est à vous de vous faire votre idée en les testant pour vos propres besoins !

Pour vous guider, voici quelques liens pouvant vous être utiles :

Et bien sûr, l’équipe Business Intelligence d’Atol CD reste à votre disposition pour tout renseignement, conseil ou « Webex » sur ces 2 ETL Open Source.