Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/09/2011, 10h40   #1
Candidat au titre de Membre du Club
 
Homme Chris M
Inscription : décembre 2009
Messages : 60
Détails du profil
Informations personnelles :
Nom : Homme Chris M
Âge : 40
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 60
Points : 13
Points : 13
Par défaut Multiple join link

Bonjour,

Je ne trouve pas l'information à savoir s'il on faire un multiple join link entre 2 tables dans TOS ?

En clair et en exemple : j'ai une table 1 en input qui contient n champs. J'ai une autre table 2 en input également qui me sert de référence dont un champ id en particulier.
Je voudrais pouvoir faire un join link sur 2 champs de ma table 1 avec ce champ id de ma table 2 !!
chrime71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 10h45   #2
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 813
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 813
Points : 1 085
Points : 1 085
Oui ça se fait dans un tMap par exemple.
Ca ne fonctionne pas ?
__________________
Pensez à la fonction Recherche
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 10h48   #3
Candidat au titre de Membre du Club
 
Homme Chris M
Inscription : décembre 2009
Messages : 60
Détails du profil
Informations personnelles :
Nom : Homme Chris M
Âge : 40
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 60
Points : 13
Points : 13
Disons que mon champ 1 de ma table 1 je le drag n drop sur mon id de ma table2 donc j'ai un lien violet de la jointure. Je peux faire pareil avec mon champ 2 de ma table 1 mais après je fais quoi de l'expression ??
Les 2 champs côte à côte comme cela n'est pas une expression valide pour TOS et si je tente des égalité avec des OU il me dit que le champ et la row de la table 2 ne sont pas des entrées valides !!

En fait je ne sais pas quoi mettre dans l'expression pour qu'il voit qu'il faille faire un join link sur l'un et l'autre de mes 2 champs issu de ma table 1
chrime71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 11h03   #4
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Salut,

Je me demande si ce que tu essaies de faire est logique, car si on prend l'exemple suivant :

Table1: avec 3 champs
C1 | C2 | C3
id11| toto| id31
id12| tata| id32
id13| titi | id33
id14| tutu| id34

Table2: avec 2 champs
C4 | C5
id41| momo
id42| mama

Maintenant, tu voudrais faire une jointure de sorte que
C1 = C4 et C3 = C4

donc ça revient tout simplement à faire une jointure à C1 = C4 puisque ça voudrait dire que C1 sera forcément égale à C4.

Si je me trompes corrige moi STP.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 11h04   #5
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 813
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 813
Points : 1 085
Points : 1 085
Ah ok c'est soit l'un soit l'autre ? quelle est la règle de gestion ?
Il sera peut être nécessaire de faire 2 look up, un par jointure.
__________________
Pensez à la fonction Recherche
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 11h11   #6
Candidat au titre de Membre du Club
 
Homme Chris M
Inscription : décembre 2009
Messages : 60
Détails du profil
Informations personnelles :
Nom : Homme Chris M
Âge : 40
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 60
Points : 13
Points : 13
Haskouse : en gros oui sauf que dans l'esprit c'est C1 = C4 OU C3 = C4 car ces champs se retrouvent séparés à la sortie ..

Benoit : J'ai imaginé faire un lookup pour chaque jointure sauf que si j'ai pris 2 champs à joindre dans mon exemple en fait j'en ai une 10 aine !!! Là ca devient plus fastidieux
chrime71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 11h03   #7
Candidat au titre de Membre du Club
 
Homme Chris M
Inscription : décembre 2009
Messages : 60
Détails du profil
Informations personnelles :
Nom : Homme Chris M
Âge : 40
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 60
Points : 13
Points : 13
Pour le moment j'ai fait autant de lookup avec un jointure sur chaque champ de ma table 1 avec le champ de ma table 2 en référence.

Cela fait une duplication autant de fois de ma table de référence pour le même champ de référence. et en effet cela fonctionne chaque jointure se fait et me restitue bien les bonnes valeurs en sortie.
C'est étonnant qu'on ne puisse pas utiliser qu'une seule fois la référence et faire une expression qui fasse une sorte de OU exclusif sur les champs de ma table 1 qui ont cette même référence du champ de ma table 2 !!!
chrime71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h02   #8
Candidat au titre de Membre du Club
 
Homme Chris M
Inscription : décembre 2009
Messages : 60
Détails du profil
Informations personnelles :
Nom : Homme Chris M
Âge : 40
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 60
Points : 13
Points : 13
Il semblerait qu'un composant existe pour cela .. ou plutôt ait existé : le tPivotToRows sauf qu'il n'apparait plus dans les versions récentes de TOS .. en tout cas pas dans la 4.2.2
chrime71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 16h16   #9
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
Bonjour,

D'un point de vue théorique, c'est pourtant la bonne manière de faire.
Si tu as plusieurs champs que tu dois vérifier par rapport à un même référentiel, il faut mapper autant de lookup que de champs.

Après, suivant ta problématique, tu peux effectivement normaliser tes données afin de récupérer autant de lignes que de valeurs à tester, et du coup n'utiliser qu'un seul lookup.
Pour cela, tu peux utiliser le tNormalizeRow.

Nicolas
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 08h59   #10
Candidat au titre de Membre du Club
 
Homme Chris M
Inscription : décembre 2009
Messages : 60
Détails du profil
Informations personnelles :
Nom : Homme Chris M
Âge : 40
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 60
Points : 13
Points : 13
Oui mais qd tu as 12 champs à plat que tu veux mapper ca devient lourd pour le schéma. J'ai trouvé un composant (externe) qui a été fait pour cela le tUnpivotRows ... Après qques heures de compréhension sur la manière de faire les liens j'arrive à un début de résultat ... Sauf que mon join link avec ma table de référence ne fonctionne pas !!!

Pour illustrer ma problématique, voilà ce que j'ai en entrée :

Table1
Id | name1 | name2 | name3 | name4 | name5
12 | aaaa | tata | 2222 | cccc |
145 | eeee | toto | 3333 | dddd | FFF
34 | iiii | titi | 4444 | | HHH

Table_ref
name | type | description
toto | wood | blabla
tata | bread | blibli
titi | salt | bleble
aaaa | peper |
eeee | mustard |
iiii | undefined | bloblo
2222 | salad | blublu
3333 | tomato |
4444 | undefined |
cccc | undefined | blabla
dddd | chocolate | bloblo
FFF | coffe | blybly
HHH | undefined |

Et en sortie je voudrais ceci :

Id | name | type | description

12 | aaaa | peper |
12 | tata | bread | blibli
12 | 2222 | salad | blublu
12 | cccc | undefined | blabla
145 | eeee | mustard |
145 | toto | wood | blabla
145 | 3333 | tomato |
145 |dddd | chocolate | bloblo
145 | FFF | coffee | blybly
etc .. etc

Sauf qu'en sortie j'ai ca :

Id | name | type | description

12 | aaaa | |
12 | tata | |
12 | 2222 | |
12 | cccc | |
145 | eeee | |
145 | toto | |
145 | 3333 | |
145 |dddd | |
145 | FFF | |
etc .. etc

Il ne m'a pas fait mon join link dans la tMap entre mon pivot_value qui contient bien les différentes valeurs de "name1, "name2", etc et le champ "nom" de ma table de référence !!!
chrime71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 17h19   #11
Candidat au titre de Membre du Club
 
Homme Chris M
Inscription : décembre 2009
Messages : 60
Détails du profil
Informations personnelles :
Nom : Homme Chris M
Âge : 40
Localisation : France

Informations forums :
Inscription : décembre 2009
Messages : 60
Points : 13
Points : 13
Avec le composant tUnpivotRows qui est un add-on j'ai réussi mon opération !!!

J'ai capté comment on utilisait le pivot de référence et sa valeur !! Pas simple de 1ere abord mais on s'en sort bien !
chrime71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h24.


 
 
 
 
Partenaires

Hébergement Web