Как отобразить два набора кодов (перечисления), используя talend - PullRequest
1 голос
/ 22 июля 2010

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

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, которая называется 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

Есть подсказка?

Ответы [ 2 ]

4 голосов
/ 19 августа 2010

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

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

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

0 голосов
/ 11 апреля 2013

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

Внутренние переменные Talend

...