Talendを使用した2つのコードセット(列挙型)間のマッピング方法
質問
次のソース表があるとします(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_Gendervaluesと呼ばれる表Tのルックアップテーブルを持っていると仮定します。これは、表Tを作成するために使用できる(そして結果を検証)
Gender_Code Gender_value
M Male
F Female
.
私は2(または3)選択肢:
-
マッピングテーブルを作成する(s_t_gender_code_mappingを呼び出します)これは次のようになります。
.S_Gender_Code T_Gender_code 0 M 1 F
TMAPを使用して簡単な参加/ルックアップを行います。
-
tmapを使用して、マッピングを実装する式を追加します。
(S.Gender_Code==0)?"F":"M"
-
代替2と同様ですが、ユーザーJavaルーチンを使用します。
他の代替案はありますか?私はTMAPの容易さを活用することができ、TMAP
のようなUIツールの使いやすさから恩恵を受けることができるようになりました。任意のヒント?
解決
私にとっては、オプション#1は不必要に複雑で、プロセスを遅くする可能性があるようです。確かに、あなたが何千ものルックアップを持っていたならば、それはあなたが望むものです、しかし2つのためではありません。
とオプション#3も、とにかくフローや反復ストリームに値をマージしたいので(Tjavarowのようなコンポーネントはより複雑な変換を行うためのコンポーネントはあります)。
TMAPコンポーネントはフローの単純な1行のJavaを実行できますので、オプション2はあなたの最良の選択のように私に鳴ります。
他のヒント
あなたのものと同様の状況を解決しました、私の主な問題は私が同じ場所にルックアップの種類を持つ大きなルックアップテーブルを1つ持っていたということでした。
あなたの問題が2人だけではなく、3番目のアプローチを念頭に置いているのは良いことです。このソリューションを見てみると、ルックアップテーブルの内容をグローバル変数にマッピングします。それからそれらを検索します。