Reduzierung von Laufzeiten durch Einsatz vom CacheMode im SpreadsheetMapper und SpreadSheetFilter

Was macht der CacheMode?

Der CacheMode speichert das Ergebnis des Mapper zwischen. Dadurch werden die Funktionen im Mapper nicht jedes mal neu ausgeführt, sondern nur einmal. Das kann die Ausführung von Flows stark beschleunigen und verkürzen.

Wann sollte man den CacheMode verwenden?

Den CacheMode sollte dann verwendet werden, wenn man in seinem Flow mindestens zwei Steps verwendet, die als Input den selben Mapper / Filter nutzen. Denn dadurch verwendet der zweite Step dann das zwischengespeicherte Ergebnis und führt nicht nochmal alle vorhergehenden Steps aus. Das sollte zu besserer Performance führen.

Wenn man im Mapper potentiell „teure“ Funktionen wie Querverweise und Gruppieren nutzt und/oder Ketten aus Filter und Mapper baut, kann der CacheMode „Wunder“ wirken.

Wo finde ich den CacheMode?

Der ChacheMode ist nur im Mapper (SpreadsheetMapper) und Filter (SpreadsheetFilter) in den erweiterten Optionen vorhanden. Er ist ein Werkzeug, um die Geschwindigkeit bei langsamen Flows zu erhöhen.

Was sollte beachtet werden?

Bei aktiviertem CacheMode gibt es eine Einschränkung für das gecachte Ausgabe-Spreadsheet. Der Zugriff von Varianten-Zeilen auf Parent-Zeilen funktioniert noch, aber der Zugriff von Child-Zeilen auf Master-Zeilen funktioniert nicht mehr.
D.h. man kann ${parent['columnname']} benutzen, jedoch nicht ${master['columnname']}. (Siehe auch Auf Relationen zugreifen). Aus diesem Grund ist der CacheMode standardmäßig deaktiviert.

Wichtig: Diese Einschränkung gilt erst für nachfolgende Steps, die auf ein gecachtes Spreadsheet zugreifen. In dem Mapper, in dem man den CacheMode aktiviert hat gilt diese Einschränkung nicht.