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

Pentaho Discussion :

Jointure entre plusieurs tables


Sujet :

Pentaho

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut Jointure entre plusieurs tables
    Bonjour,

    J'ai créé une transformation avec trois extractions de tables sources sur lesquels j'effectue un tri afin de pouvoir effectuer ma jointure.
    Cependant, je n'arrive pas a effectuer la jointure entre mes trois extractions. Pour le moment j'ai effectuer une premier jointure (merge join) entre deux extraction puis une jointure avec la dernière extraction mais je perds une grande partie de mes données.

    Avez vous une idée pour les jointures avec plusieurs extraction?

    Merci d'avance

  2. #2
    Membre confirmé

    Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 260
    Points : 537
    Points
    537
    Par défaut
    Bonjour Cell,

    A prioiri je vois pas trop pourquoi tu as ce pb...
    Pourrais-tu juste mettre en pièce jointe ta transformation kettle (fichier KTR)

    Sylvain
    www.osbi.fr

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    Bonjour sylvain,

    ci-joint ma tranformation
    Fichiers attachés Fichiers attachés

  4. #4
    Membre confirmé

    Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 260
    Points : 537
    Points
    537
    Par défaut
    En fait ton pb vient du fonctionnement même de Kettle.

    Une transformation s'appuie sur le parallélisme, tu ne peux donc pas maîtriser à partir de quel moments les lignes d'un flux X ou Y vont être disponibles.
    Il y a de fortes chances pour que ce soit la raison pour laquelle tu constates "une perte de tes données"

    L'idéal serait d'éclater ta transformations en sous-transformations et de les assembler dans un job. Tu seras au moins sur d'avoir toutes les lignes

    une autre solution possible (mais à tester tout de même) serait probablement celle indiquée dans la copie d'écran ci-jointe (mais je suis pas sur à 100%)

    Sylvain
    www.osbi.fr

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    Donc j'ai réalisé une sous transformation mais je n'arrive pas a appeler cette dernière dans ma transformation.

    Voici le détail :
    - pour ma sous transformation : j'ai fait une sélection (extract /jointure/ select) que je mets dans un "spécification sortie sous transformation"
    - pour ma transformation : je fait un appel de la sous transformation mais je n'arrive pas a récupérer les données.

    Merci

  6. #6
    Membre confirmé

    Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 260
    Points : 537
    Points
    537
    Par défaut
    Pardon, je t'ai induis en erreur en t'indiquant d'utiliser des "sous-transformations" (en fait ce type d'élément est plus pour traiter des calculs complexes que l'on aurait à effectuer dans de nombreuses transformations)

    As-tu essayé la méthode indiquée sur la copie d'écran (tout dans la même transformation) ?

    Sinon j'ai vu que tes données viennent de la même base de données, pourquoi ne fais-tu pas toute l'extraction dans une seule et même brique "extraction depuis table" avec la jointure SQL ?
    Ce sera certainement le plus simple (et aussi le plus rapide)..

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Donc j'ai tester avec un seul extract et cela fonctionne beaucoup mieux pour la récupération de données.
    J'ai cependant un problème concernant l'insertion :
    - je désire faire juste de l'insertion, donc j'utile le composant "Insertion dans table"
    - le premier test d'insertion fonctionne parfaitement (table cible vide au départ)
    - j'ai supprimer quelques enregistrements puis j'ai réexécuter la transformation et la j'ai une erreur du au fait que certain enregistrement sont déjà présent dans la table cible

    Il y a un t'il un moyen d'inserer que les nouvelles données?

    Merci
    Céline

  8. #8
    Membre confirmé

    Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 260
    Points : 537
    Points
    537
    Par défaut
    Bonjour Céline

    Oui c'est possible il faut cependant utiliser une autre brique !

    En effet "Insertion dans table", c'est seulement pour faire de "l'annuler/remplacer" (on vide tout, on remet tout)

    Si tu veux faire un traitement plus fin, il faut utiliser l'étape "insertion/mise à jour" qui permet:
    1. de créer des enregistrements n'existant encore pas dans la table cible
    2. de mettre à jour certains champs (ou tous) dans des enregistrements déjà existants dans la table cible

    Sylvain
    www.osbi.fr

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 20/05/2015, 14h36
  2. Réponses: 3
    Dernier message: 01/04/2010, 11h04
  3. Jointure entre plusieurs tables
    Par Le gris dans le forum Requêtes
    Réponses: 8
    Dernier message: 23/03/2010, 10h38
  4. Réponses: 2
    Dernier message: 23/10/2009, 16h02
  5. Problème de Jointure entre plusieurs tables
    Par Stouille89 dans le forum JDBC
    Réponses: 12
    Dernier message: 11/12/2007, 15h16

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