كيفية الخريطة بين اثنين رمز مجموعات (التعدادات) باستخدام talend
سؤال
لنفترض أن لدى التالية الجدول المصدر (تسمى 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 التي يمكنني استخدامها من أجل إنشاء جدول ر (و التحقق من صحة النتائج)
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 ولكن استخدام المستخدم جافا الروتينية.
هل هناك بديل آخر ؟ كنت أتمنى أن النفوذ سهولة tMap على الخريطة بين S_GenderValues و T_GenderValues والاستفادة من سهولة الاستخدام واجهة المستخدم أداة مثل لدينا في tMap
أي التلميح ؟
المحلول
بالنسبة لي يبدو الخيار رقم 1 هو داع معقدة يمكن أن تبطئ هذه العملية.بالتأكيد, إذا كان لديك العشرات أو الآلاف من عمليات البحث ، هذا ما تريد ، ولكن ليس لمدة سنتين.
و الخيار رقم 3 هو أيضا كثيرا كما كنت تريد الذهاب إلى دمج قيمة في تدفق أو تكرار تيار على أي حال (مكونات مثل tJavaRow هناك لجعل أكثر تعقيدا التحولات).
على tMap عنصر يمكن أن تفعل سطر واحد بسيط جافا الحق في التدفق ، لذلك الخيار 2 يبدو لي افضل خيار لكم.
نصائح أخرى
لقد حللت حالة مماثلة ليدكم ، وكانت مشكلتي الرئيسية هي أن لدي واحدة كبيرة جدول بحث مع كل نوع من البحث في نفس المكان.
إذا كانت المشكلة ينمو إلى المزيد من الخيارات بدلا من اثنين فقط ، النهج الثالث هو جيد أن يكون في العقل ، لذلك قد ترغب في إلقاء نظرة على هذا الحل ، خرائط محتويات جدول البحث إلى المتغيرات العالمية قوائم ، ثم عمليات البحث عنهم.