Hallo Synesty Support,
Angenommen man möchte 2 Verschiedene Datenquellen miteinander kombinieren:
ID | ParentID | Größe |
10-17 | 10 | 32 |
10-18 | 10 | 36 |
11-16 | 11 | 41 |
11-22 | 11 | 42 |
12-2 | 12 | 32 |
12-17 | 12 | 40 |
und:
ID | Farbe |
10 | Blau |
11 | Grün |
12 | Rot |
Das gewünschte Ergebnis ist hierbei:
ID | ParentID | Größe | Farbe |
10-17 | 10 | 32 | Blau |
10-18 | 10 | 36 | Blau |
11-16 | 11 | 41 | Grün |
11-22 | 11 | 42 | Grün |
12-2 | 12 | 32 | Rot |
12-17 | 12 | 40 | Rot |
Um dies zu erreichen gibt es im Moment mehrere Möglichkeiten:
Zum einem über ein KeyValueSpreadSheet. Dieses hat jedoch ein Limit von 150 kb, was bei größeren Quellen schnell mal erreicht ist.
Zum anderen über Datastores und Querverweise. Diese sind jedoch relativ Fehleranfällig. Ist einmal ein Falscher Wert in einer Zeile abgespeichert, muss man diesen manuell finden und wieder rauslöschen.
Und letzteres die Verwendung vom ColumnCombinerStep.
Dieser liefert aber eine Ergebnismenge von Tabelle A * Tabelle B Zeilen. Diese überflüssigen Zeilen können zwar später rausgefiltert werden, sind aber trotzdem im Flowdurchlauf erstellt worden. Das macht das ganze ziemlich langsam.
Werden z.B. 2 Spreadsheets mit jeweils 1000 und 4000 Zeilen kombiniert, bekommt man hier 4.000.000 Zeilen zurück.
Um diese Problematik zu vermeiden könnte man einen neuen Step bereitstellen, welcher ähnlich zu dem normalen ColumnCombiner Step agiert. In diesem Step gibt es Beispielweise zusätzlich für jedes Input Spreadsheet ein Spaltenauswahlfeld. Anhand der angegebenen Spaltennamen (in diesem Falle ParentId und Id) können die Zeilen aus Spreadsheet A und Spreadsheet B miteinander gemappt werden.
Dadurch würde statt dem 4.000.000 Zeilen-Spreadsheet ein Spreadsheet mit 4000 Zeilen entstehen.
Ich hoffe ihr konntet mir folgen.
Viele Grüße
Stefan Helme