假设我有以下源表(称为s):

name   gender code

Bob         0          
Nancy       1          
Ruth        1          
David       0          
.

,假设我也有一个查找表(称为s_gender_values):

Gender_Code Gender_value

0           Male           
1           Female 
.

我的目标是创建一个目标表(允许它调用它),这将如下所示:

name   Gender_Code    

Bob     M             
Nancy   F             
Ruth    F             
David   M             
.

我也假设我有一个名为t_gendervalues的表t的查找表,我可以使用,以便创建表t(并验证其结果)

Gender_Code    Gender_value   

M                Male          
F                Female        
.

我想到了2(或3)替代方案

  1. 创建一个映射表(允许调用它s_t_gender_code_mode_mapping),这将如下所示:

    S_Gender_Code     T_Gender_code     
    
    0                   M               
    1                   F    
    
    .

    然后使用tmap进行简单的连接/查找。

  2. 使用tmap并添加将实现映射的表达式,如:

    (S.Gender_Code==0)?"F":"M"
    
  3. 类似于替代2,但要使用用户Java例程。

  4. 还有其他替代方案吗?我希望我能利用TMAP的易于映射到S_GENDERVARUES和T_GENCRERVALUES之间的映射,并从UI工具的可用性受益于我们在TMAP

    中的可用性

    任何提示?

有帮助吗?

解决方案

给我,似乎选择#1是不必要的复杂,可以减慢过程。当然,如果你有几十或数千个查找,那就是你想要的,但不是两个。

和选项#3也太多了,因为您要将值合并到无论如何是否将值合并到流量或迭代流(如Tjavarow等组件,以便制作更复杂的转换)。

TMAP组件可以在流量中进行简单的单行Java,因此选项2对我发出声音,如您的最佳选择。

其他提示

我已经解决了类似的情况,我的主要问题是我在同一个地方有一个大查找表。

如果您的问题达到更多选项而不是两个选项而不是两个,那么第三种方法很好,所以你可能想看看这个解决方案,它将查找表的内容映射到全局变量列表,然后查找它们。

Talend内部变量

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top