2010-07-22 5 views
1

Предположит, у меня есть следующая таблица источника (так называемый S):Как сопоставить между двумя кодовыми наборами (перечисления), используя Talend

name gender code 

Bob   0   
Nancy  1   
Ruth  1   
David  0   

И пусть предположу, я также справочную таблицу (называемые S_gender_values):

Gender_Code Gender_value 

0   Male   
1   Female 

Моя цель состоит в том, чтобы создать целевую таблицу (назовем его T), который будет выглядеть следующим образом:

name Gender_Code  

Bob  M    
Nancy F    
Ruth F    
David M    

Я в РБП предположить, что у меня есть таблица подстановки для таблицы Т, называемые T_GenderValues, которые я могу использовать для того, чтобы создать таблицу T (и проверить ее результаты)

Gender_Code Gender_value 

M    Male   
F    Female   

Я думал о 2 (или 3) альтернативы:

  1. создать таблицу отображения (назовем его S_T_Gender_Code_Mapping), который будет выглядеть следующим образом:

    S_Gender_Code  T_Gender_code  
    
    0     M    
    1     F  
    

    , а затем сделать простой присоединиться/посмотреть используя tMap.

  2. использование TMAP и добавить выражение, которое будет осуществлять отображение, что-то вроде:

    (S.Gender_Code==0)?"F":"M" 
    
  3. похож на Альтернатива 2, но для использования пользователем Java процедур.

Есть ли другая альтернатива? Я надеялся, что смогу использовать удобство tMap для сопоставления между S_GenderValues ​​и T_GenderValues ​​и извлечь выгоду из удобства использования пользовательского интерфейса, как у нас есть в tMap

Любые подсказки?

ответ

4

Мне кажется, что вариант №1 излишне сложный и может замедлить процесс. Конечно, если бы у вас были десятки или тысячи поисков, это то, что вы хотели бы, но не для двоих.

И опция №3 также слишком велика, так как вы захотите объединить значение в поток или итерационный поток в любом случае (такие компоненты, как tJavaRow, должны делать более сложные преобразования).

Компонент tMap может использовать простой однострочный Java прямо в потоке, поэтому вариант 2 звучит для меня как ваш лучший выбор.

0

Я решил схожую ситуацию с вашей, моей главной проблемой было то, что у меня была одна большая таблица поиска с каждым типом поиска в одном и том же месте.

Если ваша проблема растет до большего количества параметров вместо двух, то третий подход хорош, поэтому вы можете взглянуть на это решение, оно отображает содержимое таблицы поиска в глобальные переменные a списки, а затем ищет их.

Talend internal variables