Wie man mit Talend zwischen zwei Codesätzen (Aufzählungen) zuordnet
Frage
Angenommen, ich habe die folgende Quelltabelle (genannt S):
name gender code
Bob 0
Nancy 1
Ruth 1
David 0
Und nehmen wir an, ich habe auch eine Nachschlagetabelle (genannt S_gender_values):
Gender_Code Gender_value
0 Male
1 Female
Mein Ziel ist es, eine Zieltabelle (nennen wir sie T) zu erstellen, die so aussieht:
name Gender_Code
Bob M
Nancy F
Ruth F
David M
Ich gehe außerdem davon aus, dass ich eine Nachschlagetabelle für Tabelle T namens T_GenderValues habe, die ich verwenden kann, um Tabelle T zu erstellen (und ihre Ergebnisse zu validieren).
Gender_Code Gender_value
M Male
F Female
Ich dachte an 2 (oder 3) Alternativen:
Erstellen Sie eine Zuordnungstabelle (nennen wir sie S_T_Gender_Code_Mapping), die wie folgt aussieht:
S_Gender_Code T_Gender_code 0 M 1 F
und führen Sie dann eine einfache Verknüpfung/Suche mit tMap durch.
Verwenden Sie tMap und fügen Sie einen Ausdruck hinzu, der die Zuordnung implementiert, etwa:
(S.Gender_Code==0)?"F":"M"
Ähnlich wie Alternative 2, aber zur Verwendung von Benutzer-Java-Routinen.
Gibt es eine andere Alternative?Ich hoffte, dass ich die Einfachheit von tMap nutzen könnte, um zwischen S_GenderValues und T_GenderValues zuzuordnen und von der Benutzerfreundlichkeit des UI-Tools zu profitieren, wie wir es in tMap haben
Irgendein Hinweis?
Lösung
Meiner Meinung nach ist Option Nr. 1 unnötig komplex und könnte den Prozess verlangsamen.Sicher, wenn Sie Dutzende oder Tausende von Suchvorgängen hätten, würden Sie das wollen, aber nicht für zwei.
Und Option Nr. 3 ist auch zu viel, da Sie den Wert sowieso in einen Fluss oder Iterationsstrom einbinden möchten (Komponenten wie tJavaRow dienen dazu, komplexere Transformationen durchzuführen).
Die tMap-Komponente kann das einfache einzeilige Java direkt im Flow ausführen, daher klingt Option 2 für mich nach der besten Wahl.
Andere Tipps
Ich habe eine ähnliche Situation wie Sie gelöst. Mein Hauptproblem bestand darin, dass ich eine große Nachschlagetabelle hatte, in der sich alle Nachschlagetypen an derselben Stelle befanden.
Wenn Ihr Problem auf mehr als nur zwei Optionen anwächst, ist es gut, den dritten Ansatz im Hinterkopf zu haben. Schauen Sie sich also vielleicht diese Lösung an, sie ordnet den Inhalt der Nachschlagetabelle globalen Variablen in einer Liste zu und dann sucht sie.