Wie kann ich ein (LEFT) JOIN auf zwei tabellen ausführen

Ich habe zwei Tabellen, die einen gemeinsamen Identifier haben. Die resultierende Tabelle sollte die Spalten aus beiden Tabellen enthalten, wobei jeweils nach dem gemeinsamen Identifier zugeordnet wird.

Die funktionalität sollte idealer Weise identisch zu SQL sein: SQL LEFT JOIN Keyword

Mir erscheint das wie ein sehr grundlegendes Feature, jedoch konnte ich in der Dokumentation nichts dazu finden.

Hallo @bzd,

es gibt keinen Step der eine „JOIN“ Funktionalität bereitstellt.

Hier zwei Möglichkeiten wie du die beiden Tabellen verbinden kannst:

  1. Möglichkeit: Datastores
  • Schreibe Tabelle 1 (Spreadsheet) mit einen DatstoreWriter Step in einen Datastore. Anschließend kannst du mit einem weiteren DatastoreWriter die Tabelle 2 in den gleichen Datastore schreiben. Wenn du im zweiten DatastoreWriter die Option autoExtendSchema aktivierst, werden die Spalten aus Tabelle 2 dem Datastore Schema automatisch hinzugefügt.
  1. Möglichkeit: SpreadsheetAppend & Gruppieren
  • Du kannst den SpreadsheetAppend Step verwenden, um die Tabellen aneinander zu hängen. Anschließend kannst du im Mapper Step über die Gruppieren Funktion (identifier Spalte) die Zeilen mit gleichen identifier Werten zusammenfassen.

Ich hoffe das hilft dir etwas weiter.

Viele Grüße
Torsten

Meiner bescheidenen Meinung nach ist das unnötig kompliziert und ich würde mich sehr freuen, wenn ihr einen JOIN Step als Feature in Erwägung ziehen könntet.

Mit besten Grüßen

Leider erlauben beide beschriebenen Methoden nur einen INNER JOIN, ich benötige jedoch einen OUTER JOIN in dem der einen Tabelle jeweils die werte der anderen Tabelle zugeordnet werden, ohne dass Zeilen zusammengefasst werden. Wie ist dies möglich?

Mit besten Grüßen,

Hallo,

Wir hatten vor längerer Zeit bereits einen JOIN Step. Dieser Step hat uns allerdings einige Probleme bereit und wir mussten den Step wieder entfernen. Die Spreadsheet Objekte sind keine Tabelle in einer relationalen Datenbank. Man kann leider nicht so einfach bekannte Datenbank Funktionen damit ausführen.
Vielleicht finden wir nochmal einen neuen Ansatz für einen JOIN Step. Aktuell ist es aber nicht geplant.

  1. Möglichkeit: Datastores

Siehe oben und aber dann im 2. DatastoreWriter auf mode = nur aktualisieren
Damit werden alle Datensätze, die im 1. DatastoreWriter geschrieben wurden, um die Spalten des 2. Spreadsheets ergänzt.

  1. Möglichkeit: Querverweis

Ein Spreadsheet wird mit einem DatastoreWriter in einen Datastore geschrieben. Das 2. Spreasheet kann dann über die Querverweis Funktion im Mapper um die benötigten Spalten ergänzt werden.

Viele Grüße
Torsten

Mit dem Querverweis klappt es. Vielen Dank