Talend tMap Anleitung

Diese Anleitung zur Talend tMap Komponente soll Ihnen die Arbeit mit Talend erleichtern und zugleich zeigen wie man die vielfältigen Konfigurationsmöglichkeiten der tMap Komponente optimal einsetzt (Expression Filter, Left Outer Join, Inner Join, Match Model, Lookup Model, Join Reject, Output Reject, if-else Anweisungen, usw.). Die Anleitung kann mit Talend Open Studio (Data Integration) bearbeitet werden.

Überblick

In unserem Anwendungsbeispiel verbinden wir zwei Tabellen (Person und Umsatz) über verschiedene tMap Einstellungen miteinander (z.B. Joins). Zudem werden Datenflüsse gefiltert und die darin enthaltenen Datensätze über Regeln transformiert (z.B. über if-else Anweisungen oder den Ausdruckseditor). Einzelne Arbeitsschritte werden kurz erklärt und bildlich veranschaulicht.

2. Bildung kartesisches Produkt

Expression Filter
Column Name Filter

3. Talend tMap Left Outer Join

Match Model
Lookup Model

4. Talend tMap Inner Join

Inner Join Reject
Output Reject

5. tMap Einstellungen

Store Temp Data
Schema Type
Variablen
Ausdruckseditor
tenärer Operator

1. Erstellung tMap Job

Als Erstes werden die zwei Tabellen Person und Umsatz erstellt und mit der tMap Komponente verbunden. Die Ausgabe erfolgt über die Konsole. Platzieren Sie zwei tFixedFlowInput, eine tMap und zwei tLogRow Komponenten auf dem Arbeitsbereich. Benennen Sie die beiden tFixedFlowInput und tLogRow Komponenten um, indem Sie entweder auf den Namen doppelt klicken oder in der Komponentenansicht auf View gehen. Die Datenflüsse können Sie durch zweimaliges Klicken auf den Namen des Datenflusses umbenennen.

Gehen Sie in die Komponentenansicht der tFixedFlowInput Komponente „Person“ und fügen Sie die ID’S und Vornamen ein wie in der Abbildung.

Klicken Sie auf den Button „…“ bei „Edit schema“ und editieren Sie das Schema der tFixedFlowInput Komponente. Hinweis: Das Schema einer Tabelle ist der strukturelle Aufbau der Tabelle mit seinen Spaltennamen, Datentypen und weiteren Eigenschaften.

Wiederholen Sie die letzen Schritte für den Umsatz.

Gehen Sie in die Komponentenansicht der tLogRow Komponente „Ausgabe“ und setzen Sie den Punkt bei „Table“. Später erhalten Sie bei der Jobausführung eine tabellarische Ausgabe auf die Konsole.

2. Bildung Kartesisches Produkt

Bei der Zusammenführung von Tabellen (kartesisches Produkt, Join) gibt es immer einen Hauptdatenfluss (bzw. Main Flow; im Beispiel Tabelle Person) und einen oder mehrere Lookup Flows (im Beispiel Tabelle Umsatz). Verbinden Sie die beiden tFixedFlowInput Komponenten „Person“ und „Umsatz“ mit der tMap Komponente, indem Sie mit der rechten Maustaste auf „Person“ klicken und den Main Flow auf die tMap ziehen. Wiederholen Sie alles mit dem „Umsatz“.

Öffnen Sie den Map Editor, indem Sie doppelt auf die tMap Komponente klicken. Einen Output erstellen Sie über das grüne Plus-Symbol oben rechts. Jetzt können Sie die gewünschten Spalten in den Output ziehen und zum Schluss speichern, indem Sie auf Aktualisieren klicken.

Verbinden Sie die tMap Komponente mit der tLogRow Komponente „Ausgabe“, indem Sie wieder mit einem Rechtsklick auf der tMap Komponente, bei „Zeile“ und dann mit „Ausgabe“ auf die tLogRow Komponente klicken. Mit der F6-Taste starten Sie den Job und erhalten die Ausgabe auf der Konsole wie in der folgenden Abbildung.

Expression Filter

Um ungewünschte Zeilen herauszufiltern, aktivieren Sie den Expression Filter und geben Sie mit einem boolschen Ausdruck an nach welchem Kriterium gefiltert werden soll. Hier sollen alle Zeilen von „Person“ herausgefiltert werden, deren ID gleich 1 ist.

In der Ausgabe kommt nur noch Hans vor.

Dasselbe Vorgehen wird für den Umsatz realisiert.

Als Ergebnis erhält man alle Umsätze mit ID gleich 1.

Der Expression Filter ist zudem im Output nutzbar. Hier wird nach dem Vornamen Hans gefiltert.

Die Ausgabe gibt entsprechend nur Datensätze mit Hans aus:

Column Name Filter

Mithilfe des Column Name Filters können Spalten gefiltert werden, mit denen man arbeiten möchte. Aktivieren Sie dazu den Column Name Filter und tippen Sie den Spaltennamen ein.

3. Talend tMap Left Outer Join

Der Jobaufbau beim Left Outer Join ist mit dem des Kartesischen Produktes vergleichbar. 

Ziehen Sie zusätzlich im Map Editor die Schlüsselspalte „id“ von Person neben die Schlüsselspalte „id“ von Umsatz.

Match Model

Standardmäßig ist beim Match Model die eindeutige Übereinstimmung eingestellt. Bei der eindeutigen Übereinstimmung wird die letzte getroffene Übereinstimmung in der Lookup Tabelle ausgewählt und ausgegeben.

Im Beispiel wird für Hans nicht der zuerst gefundene sondern der letzte gefundene Umsatz ausgegeben (77 statt 14):

Alternativ können Sie das Match Model auch auf die Erste Übereinstimmung einstellen.

Es wird die erste Übereinstimmung ausgegeben. Sie erhalten den ersten Treffer in der Lookup Tabelle für Hans.

Mit allen Übereinstimmungen erhält man alle gefundenen Übereinstimmungen .

Für Hans werden zwei Umsätze gefunden.

Die Einstellung des Match Models hat somit einen wichtigen Einfluss auf die gewünschte Ergebnismenge.

tMap Lookup Model

Grundsätzlich gibt es drei Konfigurationen für das Lookup Model:

  • Einmal Laden
  • Laden bei jeder Zeile
  • Lade bei jeder Zeile neu (Cache)

 

Alle Datensätze des Lookup Flows werden geladen bevor ein oder mehrere Datensätze des Main Flows verarbeitet werden können.

Lookup Model "Einmal Laden"

Bevor die Datensätze des Main Flows verarbeitet werden, werden alle Datensätze des Lookup Flows einmal und nur einmal entweder in den Speicher oder in lokale Dateien geladen. Letzteres erfolgt, wenn die Option „Store temp data“ gesetzt wurde. Standardmäßig wird die Lookup Tabelle einmal, ohne temporäre Zwischenspeicherung, verarbeitet.

Lookup Model "Laden bei jeder Zeile"

Es werden alle Datensätze vom Lookup Flow für jeden einzelnen Datensatz des Main Flows geladen. Die Laufzeit des Jobs wird dadurch erhöht. Es gibt ein offensichtliches Szenario in dem es sinnvoll ist diese Einstellung zu wählen: Die Lookup Tabelle wird permanent aktualisiert und Sie möchten die aktuellsten Datensätze für jeden Datensatz aus dem Main Flow verwenden.

Lookup Model "Lade bei jeder Zeile neu (Cache)"

Dieses Lookup Model funktioniert wie „Laden bei jeder Zeile“, nur können Sie nicht die Option „Store temp data on disk“ aktivieren. Für jeden neu zu verarbeitenden Datendatz des Main Flows werden die Datensätze vom Lookup Flow erneut in den Speicher geladen.

4. Talend tMap Inner Join

Beim Jobaufbau für den Inner Join werden zwei tLogRows benötigt. Verbinden Sie alle Komponenten miteinander wie abgebildet.

Im Map Editor wird die Schlüsselspalte „id“ aus „Person“ auf die Schlüsselspalte „id“ von „Umsatz“ gezogen und das „Join Model“ auf „Inner Join“ gesetzt.

Man erhält alle Personen mit zugeordneten Umsatz. Beide Outputs sind zunächst identisch.

tMap Inner Join Reject

Eine Ausgabe aller Personen ohne Umsatz erfolgt im Output „Fehler“ über die Einstellung „Catch lookup inner join reject“. Stellen Sie dafür „Catch lookup inner join reject“ auf true, um Zeilen herauszufiltern, die durch einen Inner Join nicht gematched werden können.

Stefan kann kein Umsatz zugeordnet werden (Inner join reject).

tMap Output Reject

Möchte man das gesamte Inner Join-Ergebnis weiter einschränken, dann ist das über einen Expression Filter im Output möglich. Zugleich kann man sich die Gegenmenge des Filters über „Catch output reject“ ausgeben lassen. Geben Sie im Expression Filter von „Ausgabe“ die Bedingung „Person.id == 1“ an. Stellen Sie nun bei „Fehler“ den „Catch output reject“ auf true, um alle Datensätze herauszufiltern, die die Bedingung nicht erfüllen.

Es wird im ersten Output nur Hans ausgegeben (Ergebnis des Inner Joins und des Filters). In der zweiten Ausgabe sind nur Maria und Hanna über „Catch output reject“ als true enthalten (Gegenmenge zum Filter: Person.id == 1). Stefan ist durch „Catch lookup inner join reject“ als false nicht mehr in der Fehlerausgabe enthalten.

5. Talend tMap Einstellungen

tMap Store Temp Data

Wenn Sie mit großen Datenmengen arbeiten, können z.B. Speicherprobleme beim Laden von Lookup Tabellen auftreten. Für diesen Fall setzen Sie „Store temp data“ auf true. Damit wird die Lookup Tabelle  temporär auf Dateibasis zwischengespeichert und weiter verarbeitet. Den Pfad zum Ablageort sowie die einstellbare Dateigröße finden Sie in der Menüleiste.

tMap Schema Type

Grundsätzlich können Schemata im Repository hinterlegt und in der tMap Komponente wiederverwendet werden. Es gibt verschiedene Arten ein Schema zu erstellen und zu speichern. Wir editieren das Schema der tLogRow Komponente „Ausgabe“ und speichern es im Repository.

Wenn Sie sich im Schema Editor befinden, klicken Sie auf das Disketten-Symbol um das aktuelle Schema zu speichern.

Dann wählen Sie einen Ordner aus, wo das Schema gespeichert werden soll.

Zum Schluss benennen Sie das Schema und klicken auf „Finish“.

Unter „Meta-Daten“ und „Generische Schemata“ finden Sie generisch gespeicherte Schemata im Repository. Hinweis: Schemata können auch für Datenbank- oder Dateiverbindungen hinterlegt werden. Zudem haben Sie per Rechtsklick auf „Generische Schemata“ die Möglichkeit manuell ein generisches Schema zu erstellen.

Im Map Editor der tMap Komponente können Sie das Schema auf „Built-In“ stellen, um die Datenstruktur im Schema Editor zu verändern oder auf „Repository“, um ein vorab erstelltes Schema aus dem Repository zu laden.

tMap Variablen

In der tMap Komponente werden Variablen in einem Verarbeitungsschritt einmal definiert bzw. befüllt und ggf. mehrfach in unterschiedlichen Ausgaben verwendet. Variablen erstellen und definieren Sie, indem Sie im Variablenfenster auf das grüne Plus klicken und unter „Ausdruck“ Ihren gewünschten Verarbeitungsschritt eingeben. Bennen Sie die Variable auf „idNeu“ um und ziehen Sie die eben erstellte Variable in das gewünschte Feld der Ausgabe.

In unserem Beispiel wird jede id aus der Tabelle Person mit 10 addiert. Diese einfache Transformation kann beliebig komplex im Ausdruckseditor erweitert werden.

tMap Ausdruckseditor

Anstatt einen Ausdruck einzugeben, können Sie auch auf den Button „…“ klicken, um den Ausdruckseditor zu öffnen.

Im Ausdruckseditor können Sie nach belieben Formeln und Funktionen erstellen und testen.

tenärer Operator

Ein tenärer Operator ist ein Operator (z.B. ?:), der drei Argumente benötigt. Im folgenden Beispiel wird Var.idNeu verdoppelt, wenn Var.idNeu größer als 12 ist. Ansonsten wird der Wert unverändert weitergegeben.

Die id von Hanna wurde entsprechend transformiert.

Für Anmerkungen und Rückfragen stehen wir gern zur Verfügung.

Was Sie von uns erwarten können

  • 12 Jahre Praxiserfahrung in der Entwicklung von Datenmanagement-Lösungen
  • Best Practices im Datenmanagement mit Talend Open Studio
  • Anbindung und Integration neuer Datenquellen
  • Erhöhung Ihrer Prozesseffizienz im Datenmanagement
  • Performanceoptimierung für Prozessketten in Talend Open Studio
  • Analytics und Monitoring von Datenintegrationsprozessen

Was andere über uns sagen

>>Langjähriger Partner. Super zufrieden!<<
Tobias Baumgart - Director Ecommerce-Platform Conrad Electronic SE
>>Schneller geht die Extraktion nicht. Insofern sehe ich ihre Umsetzung als vollen Erfolg!<<
Burghard Gocht - BGH Edelstahlwerke GmbH

Unser Leistungsversprechen an Sie?

>>Performancesprünge für Ihr
Datenmanagement!<<

Neutral und herstellerunabhängig

Unsere Beratung ist frei und unabhängig von Interessen kommerzieller Softwarehersteller – der größtmögliche Nutzen unserer Lösungen für Ihr Unternehmen gilt bei uns als Maßstab. Jederzeit.

Ihr Kontakt zu uns

Berichten Sie uns von Ihren aktuellen Herausforderungen und profitieren Sie von unserer zehnjährigen Praxiserfahrung im Datenmanagement.

Oder schreiben Sie uns eine Nachricht:

Das könnte Sie auch interessieren:

Daten. Software. Analytics

Kontakt

  • Avantgarde Labs GmbH
  • Theresienstraße 9
  • 01097 Dresden
  • Germany