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は不必要に複雑であり、プロセスを遅くする可能性があるようです。確かに、数十または数千のルックアップがあった場合、それはあなたが望むものですが、2つではありません。

とにかく値をフローにマージしたり、ストリームを反復したりするため、オプション#3も多すぎます(tJavaRowなどのコンポーネントはより複雑な変換を行うためにあります)。

tMapコンポーネントは、フロー内で単純な1行のJavaを実行できるため、オプション2が最適な選択のように思えます。

于 2010-08-19T04:23:23.587 に答える
0

私はあなたと同じような状況を解決しました。私の主な問題は、同じ場所にすべてのタイプのルックアップを持つ1つの大きなルックアップテーブルがあることでした。

問題が2つだけではなく、より多くのオプションに拡大する場合は、3番目のアプローチを念頭に置いておくとよいので、このソリューションを見て、ルックアップテーブルの内容をグローバル変数リストにマップしてから、それらを検索します。

Talend内部変数

于 2013-04-11T12:48:56.240 に答える