Question

supposons que j'ai la table source suivante (appelée S) :

name   gender code

Bob         0          
Nancy       1          
Ruth        1          
David       0          

Et supposons que j'ai également une table de recherche (appelée S_gender_values) :

Gender_Code Gender_value

0           Male           
1           Female 

Mon objectif est de créer une table cible (appelons-la T) qui ressemblera à ceci :

name   Gender_Code    

Bob     M             
Nancy   F             
Ruth    F             
David   M             

Je suppose également que j'ai une table de recherche pour la table T, appelée T_GenderValues, que je peux utiliser pour créer la table T (et valider ses résultats)

Gender_Code    Gender_value   

M                Male          
F                Female        

J'en ai pensé à 2 (ou 3) alternatives:

  1. créez une table de mappage (appelons-la S_T_Gender_Code_Mapping) qui ressemblera à ceci :

    S_Gender_Code     T_Gender_code     
    
    0                   M               
    1                   F    
    

    puis effectuez une simple jointure/recherche à l'aide de tMap.

  2. utilisez tMap et ajoutez une expression qui implémentera le mappage, quelque chose comme :

    (S.Gender_Code==0)?"F":"M"
    
  3. similaire à l'alternative 2 mais pour utiliser les routines Java utilisateur.

Existe-t-il une autre alternative ?J'espérais pouvoir tirer parti de la facilité de tMap pour mapper entre S_GenderValues ​​et T_GenderValues ​​et bénéficier de la convivialité de l'outil d'interface utilisateur comme celui que nous avons dans tMap.

Un indice ?

Était-ce utile?

La solution

Il me semble que l’option n°1 est inutilement complexe et pourrait ralentir le processus.Bien sûr, si vous aviez des dizaines ou des milliers de recherches, c'est ce que vous voudriez, mais pas pour deux.

Et l'option n°3 est également de trop, car vous voudrez de toute façon fusionner la valeur dans un flux ou itérer un flux (des composants comme tJavaRow sont là pour effectuer des transformations plus complexes).

Le composant tMap peut exécuter le simple Java sur une ligne directement dans le flux, donc l'option 2 me semble être votre meilleur choix.

Autres conseils

J'ai résolu une situation similaire à la vôtre, mon principal problème était que j'avais une grande table de recherche avec tous les types de recherche au même endroit.

Si votre problème s'étend à plus d'options au lieu de seulement deux, il est bon d'avoir à l'esprit la troisième approche. Vous voudrez peut-être jeter un œil à cette solution, elle mappe le contenu de la table de recherche aux variables globales et aux listes, puis les recherche.

Variables internes Talend

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top