Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Alimentation Discussion :

Talend vs Pentaho


Sujet :

Alimentation

  1. #1
    Membre du Club
    Talend vs Pentaho
    Bonjour,

    Je suis entrain d'étudier la différence entre Talend et Pentaho, alors j'ai trouvé cette phrase dans un doc:


    "Contrairement à Talend Open Studio, Pentaho Data Integration est un « moteur de transformation » ETL: les données traitées et les traitements à effectuer sont parfaitement séparés. (on parle de « meta-data driven » ETL)."

    Est ce que quelqu'un peut m'expliquer ça veut dire quoi.

  2. #2
    Responsable Approche théorique du décisionnel

    C'est pas parceque Talend est un générateur de code alors que pentaho non ?
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Membre du Club
    Aucune idée de ma part

  4. #4
    Membre éprouvé
    Pour cette partie de la phrase : "Contrairement à Talend Open Studio, Pentaho Data Integration est un « moteur de transformation » ETL", je suis d'accord avec John.

    Par contre, je ne comprends pas ce que veut dire cette partie : "les données traitées et les traitements à effectuer sont parfaitement séparés".

    Pour la partie "(on parle de « meta-data driven » ETL)". Il me semble que autant Talend que Pentaho gèrent la définition de leurs traitements dans des méta-données ? (comme la plupart des ETL d'ailleurs).

    Nicolas

  5. #5
    Responsable Approche théorique du décisionnel

    Citation Envoyé par DevNico Voir le message
    Par contre, je ne comprends pas ce que veut dire cette partie : "les données traitées et les traitements à effectuer sont parfaitement séparés".
    Je comprends cela ainsi :
    - Avec un ETL comme Pentaho les traitements sont séparés des données, on extrait les données brutes, ensuite on les retravaille dans l'outil avec des fonctions natives, puis on réinjecte les données ainsi transformées dans une base ou un fichier cible. En résumé au niveau SGBD on ne ferait que des SELECT ou des INSERT, aucune transformation/fonction ne serait utilisée. Avantage = si on migre le SGBD, la source des données on n'a pas à retoucher les traitements
    - Avec un ETL comme Talend, on traite les données dès la source, on peut utiliser des fonctions/transformations dans le SELECT par exemple. On parle d'ELT des fois, comme pour ODI/Sunopsis.
    Avantage = c'est plus rapide, fonctions connues

    Hum hum, maintenant je ne connais pas trop les 2 outils, c'est juste une supposition
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  6. #6
    Membre éprouvé
    Citation Envoyé par john malkovich Voir le message

    - Avec un ETL comme Talend, on traite les données dès la source, on peut utiliser des fonctions/transformations dans le SELECT par exemple. On parle d'ELT des fois, comme pour ODI/Sunopsis.
    Avantage = c'est plus rapide, fonctions connues
    Alors je ne suis pas un pro, mais il me semble qu'à la base Talend est bien un ETL, et pas un ELT.
    Cependant dans la dernière version, il ont effectivement intégré des fonctions d'ELT.

    Donc généraliser ceci pour Talend serait faux.
    L'explication de cette phrase mystère doit être ailleurs...

  7. #7
    Responsable Approche théorique du décisionnel

    Citation Envoyé par DevNico Voir le message
    Cependant dans la dernière version, il ont effectivement intégré des fonctions d'ELT.
    yes, c'est dans ce sens que je l'avais dit, même si en effet il ne faut pas généraliser

    --> fafoula, d'où tires-tu cette phrase ? cela permettrait de rla emettre dans le contexte, et d'éclairer un peu plus nos esprits
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  8. #8
    Membre éclairé
    Citation Envoyé par fafoula Voir le message
    Bonjour,

    Je suis entrain d'étudier la différence entre Talend et Pentaho, alors j'ai trouvé cette phrase dans un doc:


    "Contrairement à Talend Open Studio, Pentaho Data Integration est un « moteur de transformation » ETL: les données traitées et les traitements à effectuer sont parfaitement séparés. (on parle de « meta-data driven » ETL)."

    Est ce que quelqu'un peut m'expliquer ça veut dire quoi.
    Ce message a aussi été posté dans le forum talend et une reponse http://www.developpez.net/forums/d69...e/#post4082590
    a été faite :

    Citation Envoyé par plegall Voir le message
    (je travaille chez Talend)

    Autant je suis d'accord avec la phrase:

    * Pentaho Data Integrator = moteur
    * Talend Open Studio = générateur de code

    Autant je ne suis pas d'accord avec l'interprétation qui suit. Talend Open Studio est également metadata driven si on le souhaite (c'est la méthode de travail recommandée, mais pas imposée et de toute façon on peut passer dans ce mode a posteriori).

    La différence entre un moteur et un générateur, c'est que dans le premier cas, tout passe par le moteur, il y a un noeud central. Dans le cas du générateur, comme Talend, on génère un script (Java ou Perl) que l'on peut exécuter n'importe où, sans dépendre d'un moteur.

    C'est un choix d'architecture. Les 2 alternatives ont des avantages et des inconvénients. Evidemment je préfère personnellement l'approche de génération de code, mais ça n'engage que moi :-)
    Sinon, par rapport à la différence ETL et ELT que vous évoquez voila un petit overview de ce que cela veut dire.

    Talend supporte l'architecture ETL via la génération de code Java ou Perl et l'architecture ELT via la génération de code SQL. Vous aurez la même IHM (tMap, tAggregate, tSCD...) mais le code généré sera complètement différent et se sera exécuté à un endroit différent. Dans un projet, on a souvent besoin des 2 architectures et le but est d'employer la meilleure méthode au meilleur endroit!

    En mode ETL, les données doivent transiter des sources vers le serveur de transformation où tourne le job puis les données doivent aller sur les cibles. C'est l'architecture utilisé par Kettle mais aussi IBM/INFA...
    En mode ELT, le processing se fait au sein de la base de données (source ou cible, un bulk est utilisé pour migrer les données de la source vers la cible) et on économise le transfert des données vers le serveur de transformation. C'est la méthode utilisée par ORCL (OWB comme Sunopsis), GENIO...
    Cédric Carbone, Talend CTO
    Blog sur Talend, la Business Intelligence et l'intégration de données | Télécharger Talend Open Studio 3.2 / TOP 3.2
    Le forum Talend francophone | anglophone

    Actu : Offre d'emploi Consultants Talend |
    Tu as la réponse à ta question ? Clique sur en bas à gauche de ton message

  9. #9
    Responsable Approche théorique du décisionnel

    Comme quoi Talend devient un logiciel incontournable en BI ( il faut d'ailleurs que je m'y mette )

    Citation Envoyé par co2 Voir le message
    En mode ELT, le processing se fait au sein de la base de données (source ou cible, un bulk est utilisé pour migrer les données de la source vers la cible) et on économise le transfert des données vers le serveur de transformation. C'est la méthode utilisée par ORCL (OWB comme Sunopsis), GENIO...
    Tu es sûr pour GENIO ? Il me semblait qu'il avait son propre moteur de transformation
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  10. #10
    Modérateur

    Génio possède bien son propre moteur, mais il est plus dans une logique "curseur" que "flux".

    En général on envoie des requêtes déjà faites par le SGBD au moteur, et pour être honnête c'est souvent plus performant que de faire des full select dans un moteur purement ETL.

    Comme celà a été dit, la plupart des solutions convergent vers du TETLT, (Tranform Extract Transform Load Transform), mais qu'on résume à l'acronyme ETL par simplicité.

  11. #11
    Membre éclairé
    Citation Envoyé par john malkovich Voir le message

    Tu es sûr pour GENIO ? Il me semblait qu'il avait son propre moteur de transformation
    Oui, tu as raison, Genio dispose d'un moteur (j'ai été un peu vite qd j'ai rédigé mon post :-O )

    Sous Genio il y a deux principes, le foreach et le forall. Le foreach permet de traiter les données, lignes à lignes (comme un ETL). Cepdendant, on utilise plus souvent le forall qui est une méthode ensembliste, c'est à dire qu'on va modifier toutes les données en même temps (si tu fais un UPDATE ... where country="France", tu vas faire toutes les modifications en une fois et non faire une modif ligne apres ligne).
    Cédric Carbone, Talend CTO
    Blog sur Talend, la Business Intelligence et l'intégration de données | Télécharger Talend Open Studio 3.2 / TOP 3.2
    Le forum Talend francophone | anglophone

    Actu : Offre d'emploi Consultants Talend |
    Tu as la réponse à ta question ? Clique sur en bas à gauche de ton message

  12. #12
    Modérateur

    Pas tout à fait, ForAll envoie un ordre SQL complet à la base de donnée (si la connectivité le permet*), ce qui a pour conséquence ce que vous avez décrit.

  13. #13
    Responsable Approche théorique du décisionnel

    ce n'est pas très clair ( pour moi qui ne connais pas trop genio )

    c'est quoi un sql complet ?
    vosu avez un exemple ?
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  14. #14
    Membre du Club
    Merci énormément pour toutes vos réponses,
    C'est plus clait dans ma tete maintenant.
    Mais ,est ce qu'on pourra me donner plus d'éxplications
    En fait, j'ai pas encore compris " les données traitées et les traitements à effectuer sont parfaitement séparés" pour un moteur.
    Est ce que ça veut dire que les données d'input sont à part et on les fait passer par le moteur pour donner le meme résultat à chaque fois.
    Si c'est le cas comment peut -on voir ça concrètement.
    Et pour les génératuer de codes,est ce qu'on a le code et les données dans le meme script,c'est ça ?

  15. #15
    Membre éprouvé
    Très franchement, je ne comprends pas plus que toi cette affirmation...

    Les ETL générateurs de code génèrent un script lors de la compilation.
    L'exécution du traitement correspond à l'exécution de ce script.

    Quel que soit l'ETL (moteur ou générateur de code), tu précises dans tes traitement l'emplacement de tes données en entrée ou en sortie (base de données, fichiers...).
    Lors de l'exécution du traitement, l'accès à ses données se fait selon le type de donnée (connexion à une base de données et exécution de la requête, lecture du fichier, ...).

    Je ne sais pas trop quoi te dire de plus.

    Nicolas

  16. #16
    Membre du Club
    Citation Envoyé par john malkovich Voir le message
    yes, c'est dans ce sens que je l'avais dit, même si en effet il ne faut pas généraliser

    --> fafoula, d'où tires-tu cette phrase ? cela permettrait de rla emettre dans le contexte, et d'éclairer un peu plus nos esprits
    Je tire cette phrase d'une étude comparative Atol Conseils et Développements
    de leur livres blanc " target="_blank">http://www.atolcd.com/fileadmin/Publ..."inlineimg" />

  17. #17
    Membre éclairé
    Citation Envoyé par fafoula Voir le message

    En fait, j'ai pas encore compris " les données traitées et les traitements à effectuer sont parfaitement séparés" pour un moteur.
    Est ce que ça veut dire que les données d'input sont à part et on les fait passer par le moteur pour donner le meme résultat à chaque fois.
    Si c'est le cas comment peut -on voir ça concrètement.
    Et pour les génératuer de codes,est ce qu'on a le code et les données dans le meme script,c'est ça ?
    C'est normal que tu n'es pas compris car, comme tout le monde dans ce thread, personne ne comprend cette phrase
    Comme mis un peu plus tot c'est tout à fait faux de dire que les générateurs de codes embarquent les données avec le code ou bien qu'un generateur de code n'est pas metadata driven !
    Cédric Carbone, Talend CTO
    Blog sur Talend, la Business Intelligence et l'intégration de données | Télécharger Talend Open Studio 3.2 / TOP 3.2
    Le forum Talend francophone | anglophone

    Actu : Offre d'emploi Consultants Talend |
    Tu as la réponse à ta question ? Clique sur en bas à gauche de ton message

  18. #18
    Responsable Approche théorique du décisionnel

    Citation Envoyé par fafoula Voir le message
    Je tire cette phrase d'une étude comparative Atol Conseils et Développements
    de leur livres blanc " target="_blank">http://www.atolcd.com/fileadmin/Publ..."inlineimg" />
    c'est normal alors que personne n'y comprend rien, ils ont tout faux, c'est pas leur métier le déci, eux ce sont des opticiens
    ( désolé je ne pouvais pas m'empêcher - aie tapez pas )
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  19. #19
    Membre du Club
    Donc, pour conclure,
    La phrase que "les donnees et les transformations sont intimement liés pour un générateur de code alors qu'ils sont parfaitement séparés pour un moteur de transformation" est fausse, c'est ça?

    Pour Talend, j'ai vu quelques scripts ce qui est généré dans le code ça touche aux données voici par exemple dans mon cas:
    <code>
    public void copyDataTo(OutPutLinkStruct other) {

    other.Id = this.Id;
    other.Customer = this.Customer;
    other.Age = this.Age;

    }
    </code>


    Dans ce cas on gère donc les méta data? c'est ça?

  20. #20
    Membre éprouvé
    Je crois qu'on peut dire que cette phrase ne veut rien dire sortie de son contexte...
    Et qu'un ETL utilise un moteur ou génère du code, la relation aux données traitées est la même. (n'hésitez pas à réagir à cette affirmation si vous y voyez des contre-exemples).

    Pour les métadata, ce n'est pas tout à fait ça.
    Jette un coup d'oeil sur wikipedia, cela t'aidera peut-être :
    http://fr.wikipedia.org/wiki/M%C3%A9tadonn%C3%A9e

    Dans le cadre des ETL, c'est la définition des objets et des traitements que tu définis.
    Pour informatica ou datastage, ils sont par exemple stockés dans une base qu'on appelle Repository. Lorsque tu développes, tu te connectes à cette base pour récupérer et mettre à jour les traitements qui composent ton projet.

    Nicolas

###raw>template_hook.ano_emploi###