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 07/12/2010, 15h46   #1
Membre régulier
 
Avatar de mbarka
 
Inscription : mars 2005
Messages : 90
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : mars 2005
Messages : 90
Points : 90
Points : 90
Par défaut Mettre dans un tMap des liaisons provenant d'une même source Oracle

Bonjour,

J'ai besoin d'agréger des données et de comparer ces agrégations.
Exempel :
Code_Client
Nbre_Categorie_A_B_C_Distincts
Nbre_Categorie_D_E_H_Distincts

J'extrais à partir de 2 tables les commandes et les articles, puis je fais un tMap pour associer les deux et récupérer la catégorie d'articles commandés.
Ensuite, j'utilise un tFilterRow pour extraire les catégories d'articles A, B et C puis de calcule pour chaque client le nombre distinctes de catégories dans ces dernières.
Sur la sortie Rejet, je filtre d'autres catégories (D,E et H) puis je compte le nombre distinct de catégories par client (tFilterRow suivi d'un tAggregate).
Les catégories F et G seront définitivement perdues volontairement.

J'ai donc 2 sorties de tAggrégate que je dois relier à un tMap (avec jointure externe). Or, si je peux utiliser une sorties d'un agrégat comme Main, l'autre n'est pas acceptée comme entrée type lookup.

Il est important de n'utiliser que ces deux sources. C'est pourquoi j'évite d'utiliser plusieurs sources (Articles A B C et Articles D E et H) comme le bon sens le voudrais.

je vous mets l'image du flux que je voudrais.

merci de votre aide.

Mehdi

mbarka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 19h53   #2
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 812
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 : 812
Points : 1 084
Points : 1 084
oui en effet ce n'est pas possible de le faire comme ça.
Une solution serait de faire des tables intermédiaires alimentées par les taggregate, puis une second sous job qui fait la jointure entre ces 2 tables intermédiaires.

Après il y a peut être moyen de tout faire en sql mais bon c'est vous qui connaissait le fonctionnel.
__________________
Pensez à la fonction Recherche
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 10h46   #3
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,

Est-ce qu'il ne serait pas possible de faire cela en un seul flux, sans utiliser de tFilterRow ?

Par exemple en générant 2 nouveau champs :
champ1 : Vaut la catégorie si la catégorie est A, B ou C, sinon null
champ2 : Vaut la catégorie si la catégorie est D, E ou H, sinon null

Puis, via un tAggregate, il suffit de faire les count distinct sur chacun des champs créés.

Ca répondrait à ton besoin ?

Nicolas
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 11h49   #4
Membre régulier
 
Avatar de mbarka
 
Inscription : mars 2005
Messages : 90
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : mars 2005
Messages : 90
Points : 90
Points : 90
Bonjour,

Effectivement, je pourrais aussi passer par un tMap intermediaire qui ajoute un champ dans mon flux initial, puis le tAggregate pour compter.

Je vais tenter cela et vous tiens au courant.

Merci pour vos réponses et bonne journée.

Mehdi
mbarka est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web