IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

kettle/PDI Discussion :

Lookup sous Pentaho Data Integration


Sujet :

kettle/PDI

  1. #1
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 98
    Points : 71
    Points
    71
    Par défaut Lookup sous Pentaho Data Integration
    Bonjour a tous,

    Je suis entrain de réaliser l' étude comparatif des 2 ETL : Talend et Kettle.

    Je suis à la phase de test des Lookup sur les deux ETL.

    Sous Talend il n'y a aucun problème, mais sous Kettle je rencontre des problèmes et j'aimerais solliciter votre aide.


    Pour vous expliquer, J'ai 3 tables :
    T1 contenant 12 Colonnes
    T2 contenant 12 Colonnes (identiques à celles de T1)
    T3 contenant seulement 2colonnes

    T1 et T3 ont une ligne renseignée alors que T2 est vide

    La première colonne de T1 est renseignée avec une donnée identique à celle stockée dans la première colonne de T3

    Je souhaiterais insérer dans T2 toutes les valeurs de T1, en utilisant un Lookup .
    Toutes les données seront copiées à l'identique à l'exception de la donnée de la colonne10 (valorisé en récupérant la valeur de la colonne 2 de T3).

    Pour cela, j'ai fait un truc tout simple :
    J 'ai mis le composant "Extraction depuis table" (qui récupère les colonnes de T1 , je le relie à un autre composant "Recherche dans une base de données" (c'est ce que je vois comme Lookup, qui récupère les colonne de la T3), qui est relié au dernier composant "Insertion dans une Table" qui insère dans T2 .

    A noter que dans le composant "Recherche dans une base de données", dans les clés de recherche j'ai mis " T3Colonne1 Like T1Colonne 1 "
    et dans la valeur à retourner, j'ai mis dans champ " T3Colonne2"


    Mais ça me donne une erreur "Colonne1_1 introuvable" (dans aucun endroit j'ai signaler la Colonne1_1).

    Quelqu'un a une idée?

    Merci

  2. #2
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 98
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Peut être mon explication est pas claire.
    Pour cela, quelqu'un peut me dire tout simplement comment utiliser les Lookups sous Kettle ?

    Merci d'avance.

    Souska

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    Peut-être j'ai pas envie de répondre 2 fois?

  4. #4
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 98
    Points : 71
    Points
    71
    Par défaut
    Oui tu as raison

    Et j'ai toujours pas trouver la solution
    Et dans le guide de Kettle c'est pas bien expliquer

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    Bon, comme expliqué ici : http://wiki.pentaho.com/display/COM/...tion+in+Kettle

    Talend a q'une seule manière de cherchez du data, a comparer avec notre etappe "Stream Lookup" : on charge toutes en mémoire.

    Evidemment, c'est pas trop compliqué. Cherche l'example "samples/transformations/Stream lookup - basics.ktr".

    Si tu essaye d'ajouter deux fois "Colonne1", Kettle va le renommer "Colonne1_1", "Colonne1_2", etc.

    Bonne chance!

    Matt

  6. #6
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 98
    Points : 71
    Points
    71
    Par défaut
    Salut,

    Matt, merci beaucoup pour ton aide.

    J'ai mis en pièce jointe l'imprimer écran de ma transformation ainsi celle de mes tables.

    Ce que j'asseye de faire c'est :
    - Insérer dans la table TESTINSERT1 les informations qui sont dans la Table TESTINSERT, mais pour la colonne 9 (COLUMN9) je souhaite mettre l'information qui est dans la COLUMN1 du table TESTINSERT2 (qui est mon lookup) où le TESTINSERT.Column3 = TESTINSERT2.Column0

    Est ce que je doit utiliser "Recherche dans flux"? ou un autre composant?
    et comment le configurer ce composant.

    Merci d'avance

    Souska

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    Souska,

    Clique droite sur "Insert table" : "Construire schéma de correspondance" (generate mapping).

    Là tu peut choisir les champs a inserrer dans ta table.

    Apres tu met L'étappe "Sélection valeurs" entre "Stream Lookup" et "Insert table".

    HTH,

    Matt

  8. #8
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 98
    Points : 71
    Points
    71
    Par défaut
    merci beaucoup Matt,

    ça marche comme ca,
    mais il reste un tout petit problème
    c'est que il copie bien les données
    Mais pour la colonne 9, il me met a null tout les valeur sauf celle du MAN23D il me met 5
    et moi je veut pas que les autres soit null mais qu'elle reste comme elle était dans la table TESTINSERT.

    je pense que je doit mettre une condition quelque part.

    merci

    Souska

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    L'étappe Calculator a une function C=NVL(A,B);

    Si A est null, C=B, autrement C=A.

    Bonne chance,

    Matt

  10. #10
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 98
    Points : 71
    Points
    71
    Par défaut
    Merci Matt,

    C'était exactement ça.
    Mon problème est résolu.

    merci beaucoup.

    Souska

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Kettle-Pentaho
    Bonjour Souska
    Je suis en stage je travaille sur les ETL. En ce moment je compare les deux ETL Talend et Kettle afin de choisir le meilleur...
    Pouvez me communiquer votre travail de comparaison Merci
    Cilia

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/03/2013, 13h46
  2. Problème de "case" sous sas data integration
    Par feragne dans le forum SAS Base
    Réponses: 2
    Dernier message: 01/09/2008, 14h47
  3. Réponses: 9
    Dernier message: 07/08/2008, 17h08
  4. PL/Sql dans Pentaho Data Integration(KETTLE)
    Par pruderic dans le forum kettle/PDI
    Réponses: 2
    Dernier message: 06/05/2008, 12h17
  5. Kettle : Pentaho Data Integration
    Par fatima ezzahra dans le forum kettle/PDI
    Réponses: 2
    Dernier message: 18/03/2008, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo