2010-07-22 46 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    

我一個LSO假設我對錶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之間進行映射,並從UI工具的可用性中受益,就像我們在tMap

中的任何提示一樣?

回答

4

對我來說,似乎選項#1是不必要的複雜,可能會減慢過程。當然,如果你有幾十或幾千次查詢,那就是你想要的,但不是兩次。

而且選項#3也太多了,因爲無論如何,您都想將該值合併到流或迭代流中(像tJavaRow這樣的組件可以進行更復雜的轉換)。

tMap組件可以在流程中執行簡單的單行Java權限,所以選項2對我來說聽起來像是您的最佳選擇。

0

我已經解決了類似的情況給你,我的主要問題是我有一個大的查找表與每個查找類型在同一個地方。

如果您的問題增加到更多的選項而不是隻有兩個,第三種方法是有好處的,所以您可能想看看這個解決方案,它將查找表的內容映射到全局變量a列表,然後查找它們。

Talend internal variables