如何使用talend映射两个代码集(枚举)之间的映射
题
假设我有以下源表(称为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)替代方案:
-
创建一个映射表(允许调用它s_t_gender_code_mode_mapping),这将如下所示:
.S_Gender_Code T_Gender_code 0 M 1 F
然后使用tmap进行简单的连接/查找。
-
使用tmap并添加将实现映射的表达式,如:
(S.Gender_Code==0)?"F":"M"
-
类似于替代2,但要使用用户Java例程。
还有其他替代方案吗?我希望我能利用TMAP的易于映射到S_GENDERVARUES和T_GENCRERVALUES之间的映射,并从UI工具的可用性受益于我们在TMAP
中的可用性任何提示?
解决方案
给我,似乎选择#1是不必要的复杂,可以减慢过程。当然,如果你有几十或数千个查找,那就是你想要的,但不是两个。
和选项#3也太多了,因为您要将值合并到无论如何是否将值合并到流量或迭代流(如Tjavarow等组件,以便制作更复杂的转换)。
TMAP组件可以在流量中进行简单的单行Java,因此选项2对我发出声音,如您的最佳选择。
其他提示
我已经解决了类似的情况,我的主要问题是我在同一个地方有一个大查找表。
如果您的问题达到更多选项而不是两个选项而不是两个,那么第三种方法很好,所以你可能想看看这个解决方案,它将查找表的内容映射到全局变量列表,然后查找它们。
不隶属于 StackOverflow