Pergunta

suponha que eu tenha a seguinte tabela de origem (chamada S):

name   gender code

Bob         0          
Nancy       1          
Ruth        1          
David       0          

E vamos supor que eu também tenha uma tabela de pesquisa (chamada S_gender_values):

Gender_Code Gender_value

0           Male           
1           Female 

Meu objetivo é criar uma tabela de destino (vamos chamá-la de T) que ficará assim:

name   Gender_Code    

Bob     M             
Nancy   F             
Ruth    F             
David   M             

Presumo também que tenho uma tabela de pesquisa para a tabela T, chamada T_GenderValues, que posso usar para criar a tabela T (e validar seus resultados)

Gender_Code    Gender_value   

M                Male          
F                Female        

Pensei em 2 (ou 3) alternativas:

  1. crie uma tabela de mapeamento (vamos chamá-la de S_T_Gender_Code_Mapping) que ficará assim:

    S_Gender_Code     T_Gender_code     
    
    0                   M               
    1                   F    
    

    e, em seguida, faça uma junção/pesquisa simples usando o tMap.

  2. use tMap e adicione uma expressão que implementará o mapeamento, algo como:

    (S.Gender_Code==0)?"F":"M"
    
  3. semelhante à Alternativa 2, mas para usar rotinas Java do usuário.

Existe outra alternativa?Eu esperava poder aproveitar a facilidade do tMap para mapear entre S_GenderValues ​​e T_GenderValues ​​e se beneficiar da usabilidade da ferramenta de UI como temos no tMap

Alguma dica?

Foi útil?

Solução

Para mim, parece que a opção nº 1 é desnecessariamente complexa e pode retardar o processo.Claro, se você tivesse dezenas ou milhares de pesquisas, é isso que você desejaria, mas não para duas.

E a opção nº 3 também é demais, pois você vai querer mesclar o valor em um fluxo ou iterar o fluxo de qualquer maneira (componentes como tJavaRow existem para fazer transformações mais complexas).

O componente tMap pode fazer o Java simples de uma linha diretamente no fluxo, então a opção 2 me parece sua melhor escolha.

Outras dicas

Resolvi uma situação semelhante à sua, meu principal problema era que eu tinha uma grande tabela de pesquisa com todos os tipos de pesquisa no mesmo lugar.

Se o seu problema crescer para mais opções em vez de apenas duas, é bom ter em mente a terceira abordagem, então você pode querer dar uma olhada nesta solução, ela mapeia o conteúdo da tabela de pesquisa para variáveis ​​globais e listas, e então os pesquisa.

Variáveis ​​internas do Talend

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top