1

假设我有以下源表(称为 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 中的 UI 工具的可用性中受益

有什么提示吗?

4

2 回答 2

4

对我来说,选项 #1 似乎不必要地复杂,并且可能会减慢进程。当然,如果您有数十或数千个查找,这就是您想要的,但不是两个。

选项#3 也太多了,因为无论如何您都希望将值合并到流或迭代流中(像 tJavaRow 这样的组件可以进行更复杂的转换)。

tMap 组件可以直接在流程中执行简单的单行 Java,因此选项 2 在我看来是您的最佳选择。

于 2010-08-19T04:23:23.587 回答
0

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

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

Talend 内部变量

于 2013-04-11T12:48:56.240 回答