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.
es gibt keinen Step der eine „JOIN“ Funktionalität bereitstellt.
Hier zwei Möglichkeiten wie du die beiden Tabellen verbinden kannst:
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.
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.
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.
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?
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.
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.
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.