Zwei Datenquellen mit der tMap-Komponente verknüpfen

In diesem Tutorial erfahren Sie, wie einfach es ist, mit der tMap-Komponente zwei Datenquellen per Join zu verknüpfen.

Für diese Anleitung benötigen Sie Talend Open Studio Data Integration Version 6.

1. Neuen Job erstellen und eine Quellkomponente hinzufügen

Fügen Sie im neuen Job die „movies“-Metadatendatei als „tFileInputDelimited“-Komponente hinzu.

Die letzte Spalte in der „movies“-Datei heißt „directorID“. Im Folgenden werden Sie diese Spalte mit der „directorID“-Spalte in der „directors“-Datei verknüpfen.

2. Auf Basis der Datei „directors.txt“ eine Metadatendatei erstellen und diese als zweite Quelle hinzufügen

  1. Erstellen Sie eine neue zeichenbegrenzte Metadatendatei namens directors.
  2. Als Nächstes wählen Sie eine Beispieldatei aus. Klicken Sie neben dem Feld „File“ auf Browse und wählen Sie die Datei directors.txt auf der Festplatte aus. Klicken Sie auf Open.
  3. Das Feldbegrenzungszeichen in dieser Datei ist ein Komma, weshalb Sie die Einstellung in der Drop-down-Liste „Field Separator“ in „Comma“ ändern müssen.
  4. Klicken Sie auf Refresh Preview, um die Änderungen zu übernehmen und in der Ansicht anzuzeigen.
    Hinweis: Diese Datei hat nur zwei Spalten: „directorID“ und „directorName“.
  5. Ändern Sie die Spaltennamen in directorID und directorName und geben Sie für die Länge des „directorName“-Felds 40 ein. Die neue Metadatendatei „directors 0.1“ wird unter dem Eintrag „Metadata“ im Project Repository angezeigt. Als Nächstes können Sie die „directorID“-Spalte in der „movies“-Datei mit der „directorID“-Spalte in der „directors“-Datei verknüpfen.
  6. Ziehen Sie die „directors“-Metadatendatei als zweiten Quellinput in den Job.

3. Eine tMap-Komponente hinzufügen und konfigurieren, um die beiden Quellkomponenten per Join zu verknüpfen

  1. Erstellen Sie eine tMap-Komponente im Job Designer.
  2. Um einen Datenfluss von den beiden Komponenten zur tMap-Komponente zu erstellen, verbinden Sie zuerst movies mit der tMap_1-Komponente, danach ziehen Sie eine Verbindung von „directors“ zu tMap_1.
  3. Ändern Sie die Namen der Verbindungen zwischen den Quellkomponenten und der tMap-Komponente. Klicken Sie dazu doppelt auf die Verbindung und geben Sie movies bzw. directors ein.
  4. Doppelklicken Sie auf die tMap-Komponente. Der Assistent wird geöffnet.
    Auf der linken Seite im Assistenten sehen Sie, dass „movies“ und „directors“ beide Inputs der tMap-Komponente sind.
  5. Um einen neuen Outputdatenfluss zu erstellen, klicken Sie im Outputbereich des tMap-Assistenten auf [+]. Nennen Sie den Outputdatenfluss joinedOutput und klicken Sie auf OK. Ein leerer Outputdatenfluss wird erstellt.
  6. Als Nächstes werden die Felder „movieID“, „title“, „releaseYear“, und „url“ zum Outputdatenfluss hinzugefügt. Wählen Sie die vier Felder im „movies“-Input aus und ziehen Sie sie in den Outputdatenfluss. Ziehen Sie dann auch das Feld „directorName“ vom „directors“-Input in den Outputdatenfluss.
  7. Jetzt muss die Verknüpfung konfiguriert werden. Ziehen Sie die „directorID“-Spalte in der „movies“-Tabelle auf die „directorID“-Spalte in der „directors“-Tabelle.

4. Das Ergebnis in einer Datei speichern

  1. Als Nächstes legen Sie ein Ziel für den Output fest. Fügen Sie eine tFileOutputDelimited-Komponente in Job Designer ein und ziehen Sie eine Verbindung zum joinedOutput-Output der tMap-Komponente.
  2. Konfigurieren Sie jetzt die Outputkomponente, indem Sie in der Component-Ansicht den Pfad und Namen für die Outputdatei angeben. Fügen Sie eine Header-Zeile in die Outputdatei ein.
  3. Klicken Sie in der Run-Ansicht auf Run, um den Job auszuführen.
  4. Öffnen Sie den Ordner, in dem die Datei „moviesComplete.csv“ erstellt wurde, und sehen Sie sich ihren Inhalt an.

Hinweis: Für einige Filme werden keine Regisseure angezeigt. Diese Filme hatten keine directorID.

Standardverhalten im ETL-Tool:

  • Alle Zeilen der Ausgangstabelle werden angezeigt.
  • Wenn die Join-Bedingung nicht erfüllt wurde, bleiben die zugehörigen Outputfelder leer. In diesem Beispiel wurde ein „Left Outer Join“ erstellt.
    Sie können die Verknüpfung in tMap auch als Inner Join konfigurieren. Dann werden nur jene Zeilen angezeigt, für die die Join-Bedingung erfüllt war.