Bonjour,
Quels sont les avantages et les inconvénients des ETL suivants : Octopus, Kettle, CloverETL etTalend ?
![]()
Bonjour,
Quels sont les avantages et les inconvénients des ETL suivants : Octopus, Kettle, CloverETL etTalend ?
![]()
Tout d'abord, petit disclamerEnvoyé par bigplayer
, je suis Cédric Carbone Directeur Technique de Talend. Je vais cependant essayer d'être le plus objectif possible mais il est certain que je connais beaucoup mieux Talend Open Studio que les autres produits. N'hésitez pas à poster sur ce post si vous n'êtes pas d'accord avec mes propos.
Octopus et CloverETL (si tu parles du projet OpenSource) ne disposent pas d'interface graphique donc sont de très bon produit pour des développeurs mais pas utilisables par des consultants BI.
Type (ETL moteur, ETL generateur ou ELT)
Kettle est un moteur : le code n'est pas visible à ma connaissance et non autonome c'est à dire qu'il faut absolument un composant de kettle pour faire tourner ses jobs. (Merci au Kettliens de confirmer si je ne dis pas de bétise!)
Talend est un code generateur ou ELT. L'interface graphique génère un fichier XML au format MOF/XMI qui arrive dans un moteur de génération de code (templates). Le code final est donc, suivant le choix de l'utilisateur, soit un code Java ou Perl (composant ETL code générateur) ou SQL (composants ELT qui tournent donc au sein de la base de données). Ce code est visible par l'utilisateur et autonome c'est à dire qu'il n'y a pas de besoin de Talend sur les serveurs de prod.
Ergonomie, productivité, IHM:
Kettle et Talend Open Studio disposent d'une interface graphique. Kettle est basé sur SWT et Talend sur Eclipse RCP. Je trouve l'IHM de Talend plus ergonomique (c'est mon point de vue).
Richesse fonctionnelles
Le découpage des composants est différent. Je ne pense pas que le nombre veille dire quelque chose même s'il est toujours indiqué dans les études.
Une soixantaine de composants pour la derniere version de Kettle (2.4) contre 80 pour Talend 2.0.0M3 (sachant que 90% des composants perl sont disponibles aussi en Java). Je pense que les 2 solutions permettent de faire un peu tout ce qu'on veut
Talend permet d'étendre la liste des composants de Talend via le package de module Perl ou des Jar ( http://talendforge.org/wiki/doku.php...onent_creation )
A noter qu'il n'y a pas de correspondance au tMap de Talend (le mappeur graphique à la base de la pluppart des ETL) dans Kettle.
A la différence de Kettle, Talend permet également de gérer la gestion de contexte (dev, recette, prod...).
Performances
C'est le sujet difficile à établir. La les 2 produits sont librement téléchargeable, je vous laisse faire votre bench. Tout va dépendre de la façon de faire les jobs. (Je ne sais pas assez bien me servir de Kettle pour faire des benchs.)
Voila un bench avec talend http://talendforge.org/wiki/doku.php...ces:scenario_1 qui met en jeu un fichier source de 1 million de lignes, un lookup de 5000 lignes, un filtrage des lignes, une agregation suivant 2 champs afin de calculer 2 moyennes et une valeur minimum, une transformation en scripting (extraire de valeurs entieres), un tri suivant 3 clés (2 alphanumériques une numérique), lécriture d'un fichier positionnel, d'un fichier XML et d'un fichier délimité. Ce job est généré en Perl (via TOS 2.0.0M1) et tourne sur un portable ASUS (2GB, Core Duo T2400@1.83GHz) sous linux (Ubuntu). L'interpréteur perl est un 5.8.8 (attention les anciennes versions sont plus lentes, c'est ce qu'on voulait montrer via ce bench). Cela met 15 secondes soit environ 65 000 lignes / seconde. Le job est downloadable pour le tester sur votre machine.
Si quelqu'un peut faire le meme job en Kettle je serai bien intéréssé par avoir le résultat (il faudrait aussi qu'on le refasse avec la derniere version de Talend).
Ou sinon on peut faire le contraire, si quelqu'un à un job en Kettle du même type, on pourrait faire le meme en talend.
Intégration dans une plateforme BI
Kettle a été recemment (l'année derniere) racheté par Pentaho. L'intégration dans la suite de Pentaho est en cours. http://kettle.pentaho.org/
Talend a été choisi par les 2 autres plateformes BI (JasperSoft et SpagoBI). JasperSoft est le numéro de la BI Open Source (5000 clients) et dispose de "JasperETL powered by Talend*". C'est une version rebrandé de Talend Open Studio que Talend publie à chaque release majeure (la version 2 de JasperETL sera est pour ce mois-ci) http://www.jaspersoft.com/JasperSoft_Products.html
SpagoBI intègre des rapports JasperReport, BIRT, BO... du Mondrian/JPivot, du Weka... et du Talend. Je suis d'ailleurs la semaine prochaine en Italie pour rencontrer de nouveau l'équipe de SpagoBI pour voir l'avancement. Cette intégration sera disponible dans la nouvelle version de SpagoBI (fin avril).
http://spagobi-info.eng.it/SpagoBISi...s/roadmap.html
http://spagobi.eng.it/
Sinon, j'ai mis un pointeur vers une étude du JDNet dans un précédent thread : http://www.developpez.net/forums/sho...58&postcount=3
A+,
Cédric Carbone
Talend CTO
La version 2.0.0 stable de Talend Open Studio sort le 10 avril 2007 : www.talend.com
Je peut confirmer avec beaucoup de plaisir.Kettle est un moteur : le code n'est pas visible à ma connaissance et non autonome c'est à dire qu'il faut absolument un composant de kettle pour faire tourner ses jobs. (Merci au Kettliens de confirmer si je ne dis pas de bétise!)En fait Informatica utilise le même système d'execution.
Mais non! Dit c'est pas vrais?Je trouve l'IHM de Talend plus ergonomique (c'est mon point de vue).![]()
Bonne journee!
Matt
En fait, scenario 1 est interessant, mais ...
- le fichier de texte doit être trié en avance
- auccun database est utilisé
- les fichiers sont super simple (single byte characters)
- aucun conversion est fait
Bréf, on peut pas dire que ce scenario est relevant. Je peut faire ça avec une petite program de Perl, awk, ... J'ai pas besoin d'une programme ETL.
Peut-être les gens sont interessé a savoire combien de temp Talend faut pour enregistrer 1M de clients dans une table Kimball Slowly Changing Dimension?
Et pour scenario 3: inserrer 10M d'enregistrement dans une table "Fact" avec 10 dimension SCD?
Bonne journée,
Matt
Je ne savais pas que le team leader de Kettle parlait FrancaisVoici quelques remarques par rapport à ton post de ce matin.
Le job représente un processus relativement simple utilisant cependant des fonctionnalités assez utilisées des ETL. Comme je l'ai écrit plus haut "met en jeu un fichier source de 1 million de lignes, un lookup de 5000 lignes, un filtrage des lignes, une agregation suivant 2 champs afin de calculer 2 moyennes et une valeur minimum, une transformation en scripting (extraire de valeurs entieres), un tri suivant 3 clés (2 alphanumériques une numérique), lécriture d'un fichier positionnel, d'un fichier XML et d'un fichier délimité"Envoyé par MattCasters
C'est sur qu'on utilise pas dans ce scénario un chargement en masse dans Oracle (bulk), qu'on n'appelle pas un webservice, qu'on ne traite pas des exports de LDAP, qu'on n'utilise pas du dédoublennage, qu'on n'envoit pas un email... on ne peut pas jouer avec tous les composants de l'ETL dans un seul scénario. Ce job etait là en plus surtout pour mettre en valeur les différences de performance entre les OS et les versions des interpréteurs perl.
En fait j'essaye d'expliquer à mes interlocuteurs qu'ils pourront toujours faire le job de l'ETL (quelque soit l'ETL) avec du code spécifique. Cependant, avec un ETL on gagne du temps (le job de démo ci-dessus met moins de 10 minutes à être développé, je pense que pour développer ton programme Perl, awk... tu mettras bien plus de temps), génère un code éprouvé et standardisé (gagne ainsi en qualité, les différents composants de l'ETL sont testés assez souvent dans différents environnement par différentes personnes et gagnent ainsi en maturité de jour en jour contrairement à un programme que tu ferais "from scratch"), la génération d'une documentation toujours à jours est disponible (point très important pour gagner en qualité et en maintenance), une gestion des erreurs et du monotiring temps réél est intégrés (ce que tu ne feras certemmenet pas pour un job developpé rapidement from scratch)... en gros avec un ETL on va adopter une démarche professionnelle, valorisante et industrialisée.Envoyé par MattCasters
Bien sur que cela est un sujet également interessant. Nous utilisons notre outil de mapping graphique pour gérer les contraintes SCD. Nous avons également une nouveauté dans ce domaine qui ne devrait pas tarder à sortirEnvoyé par MattCasters
En fait il y a réélement un grand nombre de cas intéressant où on peut mettre de l'ETL et un grand nombre de scénario business à écrire.
Bonne journée à toi aussi! D'ailleurs, dans le cas où tu passes sur Paris, mail-moi je serai ravi d'échanger nos idées autour d'une bierre.Envoyé par MattCasters
Cédric
Bonjour,
J'essaie de faire un job sur kettle et Clover.ETL mais je n'y arrive pas. J'ai reussi à le faire avec Talend.
Le job que je veux faire est le suivant : J'ai un fichier texte qui compte 40 colonnes et je veux le découper en deux au niveau colonnes et non lignes. Les 20 premières colonnes dans une premiere table et les autres dans une deuxième table.
Avec Talend, il y a le composant tMap qui m'a permis de le faire mais je n'ai pas trouvé l'équivalent sur PDI ou Clover.ETL.
Qui saurais comment faire?
Merci d'avance
Avec PDI vous pouvez ecrire vers deux tables en même temps.
On peut utiliser "Select Values" pour selectioner les champs désiré.
D'accord. En fait j'ai cherché cooperation avec Talend avant... (envoyé le 10 avril 2006)Bonne journée à toi aussi! D'ailleurs, dans le cas où tu passes sur Paris, mail-moi je serai ravi d'échanger nos idées autour d'une bierre.
Cédric
Dear Mr. Diard,
I came acros your "Talend" project through a colleague of mine at Pentaho.
Having gone through the process of open sourcing an ETL tool myself, I just wanted to wish you all the best of luck.
Welcome to the wonderful world of Open Source BI I guess.
Cordiallement,
Matt
____________________________________________
Matt Casters, Chief Data Integration
Pentaho, Open Source Business Intelligence
http://www.pentaho.org -- mcasters@pentaho.org
Tel. +32 (0) 486 97 29 37
Bonne idée la bière !
Je m'invite aussi si vous organisez une discussion BI open-source autour d'un verre![]()
C'est toujours mieux qu'une conférence où tout le monde s'endort. D'autre part, être concurrents n'empêche pas de boire un pot ensemble (surtout dans le monde du libre)![]()
A la prochaine tout le monde.
Cordialement,
***************************
Christopher Andre
Technical Support Engineer, EMEA
JasperSoft Corporation
En fait, on aurra plein de subjects pour une discution, même entres concurrents.
Comme avec le standard proposé Olap4j, je propse un standard metadata.
En plus, votre chef a dit que nous sommes pas des concurrents :-)
--> metadata, super-metadata, business logic definitions, ...
Si il-y-a des interessés, apres ma vistitte a Santa Clara (http://www.mysqlconf.com/cs/mysqluc2...ew/e_spkr/3081) je prend le TGV vers Paris :-) Envoy moi un e-mail, si possible en Anglais :-)
Matt -- mcasters@pentaho.org
Merci pour la reponse.
J'ai essayé avec ce composant. Il me rempli bien mes deux tables mais il me il me met la moitié des enregistrements dans une table et l'autre moitié dans l'autre (sur les 1007 enregistrements, 503 vont dans la 1e table et 504 dans la seconde)
Voila le job :
J'ai un composant "Extraction depuis fichier" lié à 2 composants "Select Values"
Chaque composant est lié à un composant "Insertion Table" : "Select Values" pour le composant "Insertion Table" et "Select Values 2" pour "Insertion Table 2"
J'ai essayé en utilisant uniquement une seule fois le composant "Selection Valeurs" mais en vain.
Pourquoi il me met pas mes 1007 dans la table 1 et aussi dans la table 2?
Merci d'avance.
Clicker droit sur le "Step" d'origine: "Mouvement données..." --> "Copier les données vers les étaps suivantes".
Version 2.5.0 le demande automatiquement.
merci ca marche. Je m'etais debrouillé autrement en bidouillant un peu mais maintenant j'ai qqch de plus propre.
Je mettrais incessament sous peu (mais pas dans l'immédiat) un topic avec mon retour d'experience sur les 3 outils que j'ai étudié (Talend, PDI et Clover.ETL).
Ce que je peux dire pour l'instant c'est que je vais choisir Talend. Pourquoi? La prise en main est simple (on peut realiser un job en quelques clics et quelques glisser deplacer et puissance du composant tMap), les temps d'execution sont les plus performants...
Voila la beauté de "open source": vous avez la choix. :-)
J'aurais une autre question. Cela concerne et Talend et Kettle
Est-il possible d'utiliser le Polling directory, le polling POP/MAPI ou le polling base de données? SI oui comment?
Merci d'avance
On a ajouté 2 briques dans 2.5.0:
File exists / Attendre apparition fichier
Get emails from POP / Récupérer courriels depuis serveur POP
> le polling base de données
ça dépend. On a besoin d'autres software pour capturer tous les changement dan un database, PDI ne peut pas le fair seul. Sur le platform Pentaho il est possible d'utiliser MQSeries et de lancer des transformations avec les messages commes paramètres. Par-côntre, c'est pas facille a faire :-)
Matt
Sous Talend Open Studio:Envoyé par MattCasters
>Pooling d'un répertoire c'est disponible via un tFileList (disponible depuis octobre dernier, TOS 1.0 ou supérieur). On l'utilise souvent lorsqu'on cherche des fonctions EII et que l'on veut réagir sur un evenement qui arrive sous forme de message XML d'un certain nom.
>Récupérer des emails en provenance d'un serveur POP : le tPOP (disponible depuis la 1.1M1) : c'est ce que par exemple Accor (la chaine d'hotels) utilisent en production pour archiver et alimenter en temps réél un datamart à partir de chacun des emails de confirmation / réservation de leur système en ligne (plus de 6 millions de mails par an).
>Pooling base de bases de données. Comme le dit Matt, il y a beaucoup de méthodes et un peu plus de travail de ce coté. On peut par exemple utiliser un trigger sur les bases de données qui peut lancer un job talend ou ecrire dans un fichier de log utilisés par talend pour tracker les modifs(solution intrusive mais adapté dans certains projets), on peut lire les fichiers de log de la base de données (le Change Data Capture, non encore disponible sur aucun ETL Open Source à ma connaissance mais cela ne devrait plus tarder, Stay tuned!, pour info IBM facture plus de $90,000 le CDC pour Oracle), dans le cas de tables disposant d'une primary key (une séquence, un auto-increment) où l'on veut surveiller les insert (et non les updates ou delete) Talend peut pooler regulierement la table en surveillant le max ID afin de ne réccupérer que les nouvelles lignes, dans le cas de tables à surveiller pas trop énormes on peut régulièrement faire un lookup sur certains champs et faire une différence avec une table de référence afin de détecter des changements (solution pouvant charger un peu trop la base de données source)... il y a en fait plein de possibilités suivant la problématique mais ce n'est pas un sujet simple!
Matt, une petite question, pour quand est prévu la version 2.5 de PDI?
Probablement dans quelques jours.Matt, une petite question, pour quand est prévu la version 2.5 de PDI?
--> "change log 2.5.0 vs 2.4.0" (draft)
Plus important sont: "Advanced error handling" & "Apache VFS support"
Bonjour,Envoyé par co2
Je suis développeur ETL depuis 4 ans, je travaille principalement avec les outils propriétaire comme DataStage, Decisions Stream et Informatica et je commence à explorer les ETL du monde libre. Comme je suis d'un autre milieu de développeurs (Montréal, Canada), je trouvais intéressant, pour moi, de vous donnez mon avis.
PDI(Kettle) 2.5.0
J'ai commencé par connaître et essayer PDI(Kettle) comme premier ETL Open Source. Au premier coup d'œil, j'ai trouvé son esthétique très ressemblant avec DecisionStream, soit un peu vieillot.
Les avantages:
- En mode stand by, le client ne prend pas trop de mémoire soit 10 Megs (sur ma machine seulement bien sûr)
- Le choix des 'steps' est très complet et ne requiert pas de connaître un language précis
- Le suivi lors de l'exécution est pertinent (nombre de row lu, écris, etc..)
- Le chargement du client est rapide
- La fonctionnalité de Replay pour rejouer seulement les rows en erreurs est appréciable
- La fonctionnalité de l'analyse d'impact sur la DB est appréciable
- La possibilité de d'utiliser, au tant, le "table max + 1", les séquences Oracle ou les Auto Number pour la création de la clé technique
- La gestion du Slowly Changing est très facile
- L'explorateur du repository est bien fait
- L'utilisation de la souris est bien (drag N drop, bouton du milieu, etc...)
Les désavantages
- L'esthétique manque de classe
- Bien que les transformations peuvent être classées dans une hiérarchie de répertoires du repository, ils ne sont pas classées de cette façon dans le Main Tree. Je ne comprends pas car c'est à cet endroit que nous en aurions le plus besoin???
- Le Guide Utilisateur (Ang.) n'est pas complété. Les références internes dans le PDF ne correspondent pas aux sujets auquels ils devraient renvoyer. Les descriptions des Steps sont trop succinctes, il manque un peu de texte pour compléter la description. De plus, certaines options ne sont pas renseignées complètement donc il faut souvent tâtonner avec le step pour comprendre totalement comment il fonctionne.
- Dans la version 2.5.0, Chief a été retiré du zip téléchargé gratuitement. Pourquoi ???
- L'installation est en fait qu'un simple unzip dans un répertoire. Et il faut se faire des shortcuts pour démarrer les .bat ou .sh
- La gestion des variables n'est pas toujours optimale. Certaines options permettent les variables et d'autres non. De plus dans les SQL, l'utilisation de paramètres est positionnelle. Pourquoi, au lieu du ?, ne pas permettre une variable qui serait "parsée" par le moteur avant l'exécution. Cela donnerai la fonctionnalité de mettre la même variable plus d'une fois dans le SQL. Il est courant dans un ETL de vouloir insérer plusieurs fois la même variables
- Le step Calculator a des fonctions prédéfinies mais pourquoi ne pas donner la possibilité au développeur d'en faire des "custom"
- Il manque la possibilité de faire des Gabarits de mapping qui serait sauvegardés dans le Repository et serait réutilisables.
Talend Open Studio 2.0.0.r3065
Je connais moins ce produit donc mon commentaire est encore limité.
Mon premier coup d'oeil a été de dire "Voilà un environnement de travail qui a l'air professionnel!"
Les avantages
- L'esthétique et l'ergonomie sont agréables et conviviales
- L'arbre de navigation est clair et bien organisé
- Le souci apporté à la documentation est un gros plus
- L'assistant d'installation est convivial
Les désavantages
.
- Le client est lourd, il prend 87 Megs en mode stand by (sur ma machine seulement bien sûr)
- Je n'ai pas vu de Scheduleur intégré pour permettre de gérer les dépendances entre les jobs et lancer des jobs à heure déterminée.
- Les Components ne sont pas complet. D'après ma mince expérience du produit, il faudrait beaucoup faire de code JAVA ou PERL. Mais référant ton commentaire Cédric. Je pense que Talend n'est pas encore rendu à pouvoir facilité assez le développeur pour gagner du temps s'il doit faire beaucoup de code pour ses besoins spécifiques. J'ai hâte de voir les ajouts éventuels de Components dans le futur
Conclusion
Autant chez Talend que chez Pentaho, il manque sur leurs sites respectifs une documentation sur l'architecture du système. Pour PDI, un serveur Slave est accessible via le server Web-Server "Carte" mais cela me semble pas un serveur qui peut gérer l'exécution des jobs par lui-même. Chez Talend, comme c'est un generateur de code il n'a pas besoin de serveur, on peut mettre le code sur un serveur PERL ou JAVA qui va exécuter les jobs. Comme vous voyez ma compréhension est floue, ce qu'une documentation permettrai d'améliorer.
J'aime beaucoup le travail qui a été fait chez Talend, par contre vu que le nombre de Components est limité et que je ne suis pas un développeur JAVA ou PERL, je suis bloqué avec ce produit. Donc, mon choix pour l'instant doit aller vers PDI.
Messieurs, dans cette avis vous allez sûrement voir des affirmations faussent de ma part. Je vous demande de rectifier mon ignorance.
Merci
Hugo Poissant
Montréal, Canada
Dernière modification par sauros ; 17/05/2007 à 19h44. Motif: Correction de fautes
Pourquoi pas. Tous les functionalités de Chef sont maintenant dans Spoon.Dans la version 2.5.0, Chief a été retiré du zip téléchargé gratuitement. Pourquoi ???
Et alors?L'installation est en fait qu'un simple unzip dans un répertoire. Et il faut se faire des shortcuts pour démarrer les .bat ou .sh
No, je ne crois pas que ça manque.Il manque la possibilité de faire des Gabarits de mapping qui serait sauvegardés dans le Repository et serait réutilisables.
Mais non, tous le monde a le droit de dire ce qu'il veut. La liste que vous avez assemblé est trés util pour nous. Par-contre je vous propose d'examiner la repertoire samples/ pour quelques transformations et jobs qui peuvent vour montrer quelques "trucs" :-)Je vous demande de rectifier mon ignorance.
Bonne journée,
Matt
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager