Cache in Mapper

Hallo zusammen,

ich habe eine Frage zum Caching in einem Mapper Step.
Wir haben einen Step der alle Bestellungen (Master) und deren Bestellpositionen (Child) aus einem Datastore holt, dann nach allen offenen Bestellungen filtert (master[‚state‘]! == „open“) und schließlich die Daten in einem Mapper gruppiert und die Anzahl der Bestellmenge summiert. Danach wird das Spreadsheet nochmals gefiltert und die Daten in einen anderen Datastore geschrieben (siehe Screenshot).

Nun dauert der Mapper Step mit dem gruppieren sehr lange. Daher wollte ich in diesem Step das Mapping aktivieren. Im Hinweis steht jedoch, dass man ${parent[‚columnname‘]} benutzen kann, jedoch nicht ${master[‚columnname‘]}. Können wir das Caching im Mapper Step jetzt verwenden, da wir nur im Filter Step zuvor nach master gefiltert haben oder geht das in dem Mapper Step dann auch nicht? Dort gruppieren und summieren wir nur.

Viele Grüße,
Patrick

Hallo Patrick,

wenn du das Caching im Mapper aktivierst, geht die ${master['columnname']} erst im Output-Spreadsheet dieses Mappers verloren. D.h. auf den vorherigen Filter Step sollte das keinen Einfluss haben und du kannst weiterhin den Filterausdruck master['state']! == 'open' verwenden.
Im nachfolgenden Filter Step (6. „Filter leere Produktnummern“) kannst du ${master['columnname']}
nicht verwenden.

Das Caching im Mapper wird aber nur eine Verbesserung bringen, wenn du den gecachten Mapper Output mehrfach im Flow verwendest.

VG Torsten