Tipps & Tricks
Grundsätzlich arbeitet ein FME Prozess die zu verarbeitenden Features sequenziell ab. Ein eingelesenes Objekt durchläuft dabei zunächst einmal alle Transformer und wird dann mithilfe des Writers ins gewünschte Zielformat geschrieben.
Danach wird das nächste Feature verarbeitet und so weiter. Dieses Prinzip gilt allerdings nicht für FME Prozesse die sogenannte gruppenbasierte Transformer enthalten. Diese Art von Transformern kann mehrere Objekte gleichzeitig verarbeiten, was zu einer Änderung der Objektreihenfolge führen kann.
Um mehrere Features gemeinsam zu prozessieren, speichern gruppenbasierte Transformer die eingehenden Daten zwischen. Erst wenn alle Objekte, die gemeinsam verarbeitet werden, am Transformer angekommen sind, erfolgt die Bearbeitung. Durch ein Steuern in welcher Reihenfolge Features an gruppenbasierten Transformern ankommen, kann die Menge der zwischenzuspeichernden Daten reduziert und so die Performance des Workspaces optimiert werden. Ein Einfluss auf die Reihenfolge der Features ist auch in anderen Anwendungsfällen hilfreich. So steuern sie beispielsweise auch, in welcher Reihenfolge Daten in ihr Zielformat geschrieben werden.
FME bietet unterschiedliche Möglichkeiten, Features zu sortieren und zu steuern in welcher Reihenfolge Prozessabschnitte ausgeführt werden. Einige dieser Möglichkeiten stellen wir in diesem Artikel vor.
Und so funktioniert es
Reihenfolge steuern, in der Daten eingelesen werden:
Wenn Ihr FME Workspace mehrere Reader enthält, können Sie steuern, welcher der Reader zuerst ausgeführt wird. Ein Anpassen der Reader-Reihenfolge ist über den Navigator möglich. Der dort an oberster Stelle aufgeführte Reader wird immer zuerst ausgeführt.
Um die Reader-Reihenfolge zu verändern, machen Sie im Navigator einen Rechtsklick auf den Reader, den Sie verschieben möchten, und wählen Sie „Nach oben verschieben“ bzw. „Nach unten verschieben“ („Move Up“ bzw. „Move Down“) aus.
Abbildung 1: Anpassen der Reader Reihenfolge
Tipp 1
Reihenfolge steuern, in der Creator Transformer ausgeführt werden:
Einige Workspaces enthalten keine Reader und werden mithilfe von Creator Transformern gestartet.
Sollten mehrere Creator in einem Workspace enthalten sein, kann auch hier gezielt festgelegt werden, in welcher Reihenfolge sie und somit die jeweiligen Prozessabschnitte ausgeführt werden.
Um die Ausführungsreihenfolge zu definieren, machen Sie einen Rechtsklick auf einen der Creator und wählen Sie „Creator-Reihenfolge zur Laufzeit festlegen…“ („Set Creator Runtime Order“).
Im sich öffnenden Dialogfenster kann die Creator-Reihenfolge nun mithilfe der Pfeilsymbole angepasst werden.
Abbildung 2: Anpassen der Creator-Reihenfolge
Tipp: Sollten im Workspace SQLCreator oder PythonCreator Transformer enthalten sein, können Sie auch die Reihenfolge, in der diese Transformer ausgeführt werden, über den hier beschriebenen Weg steuern.
Tipp 2
Reihenfolge steuern, in der ein Transformer Daten an unterschiedliche Verbindungen sendet
Der Output-Port eines Transformers oder eines Reader Feature Types kann mehrere Verbindungen haben. Features, die an diesen Port gesendet werden, können so auf unterschiedliche Arten weiterverarbeitet werden.
Auch hier können Sie steuern, wohin die Daten zuerst übermittelt werden.
Machen Sie dafür einen Rechtsklick auf den Output-Port oder auf eine der Verbindungen und wählen Sie „Reihenfolge der Verbindung zur Laufzeit festlegen“ („Set Connection Runtime Order“). Im sich nun öffnenden Dialogfenster können Sie bestimmen, welche Verbindung zuerst bedient wird.
Abbildung 3: Reihenfolge der Verbindungen festlegen
Tipp 3
Reihenfolge über den Transformer Sorter anpassen:
Über die vorgestellten Methoden hinaus, kann der Transformer Sorter genutzt werden um die Feature-Reihenfolge anzupassen. Der Transformer erlaubt sowohl ein alphabetisches als auch ein numerisches Sortieren. Eine Ausgabe der Daten ist entweder aufsteigend oder auch absteigend möglich.
Im Transformer definieren, in welcher Reihenfolge Features dort ankommen
Mithilfe der genannten Schritte können Sie Ihre Daten in die gewünschte Reihenfolge bringen.
Um die optimierte Feature-Reihenfolge nun zu nutzen, um weniger Daten zwischenzuspeichern, ist noch eine Anpassung an den jeweiligen gruppenbasierten Transformern notwendig. Hierüber definieren Sie im Wesentlichen, in welcher Reihenfolge Ihre Daten den Transformer erreichen.
Wurden die Features beispielsweise nach Gruppenzugehörigkeit sortiert, kann im gruppenbasierten Transformer die Einstellung „Gruppe abschließen“ („Complete Groups“) auf „Wenn sich die Gruppe ändert (Erweitert)“ („When Group Changes (Advanced)“) gestellt werden. Sobald eine Gruppe vollständig ist, werden ihre Features nun direkt verarbeitet.
Abbildung 4: Parametereinstellung in einem Gruppenbasierten Transformer
Bei einigen Transformern mit mehreren Input-Ports wie dem Clipper oder dem PointOnAreaOverlayer können Sie nach einem ähnlichen Prinzip festlegen, in welchen der Ports zuerst Daten eingehen.
Abbildung 5: Parametereinstellung im Clipper Transformer
Hinweise
Diese Transformer-Parameter sollten nur dann angepasst werden, wenn über den Workspace sichergestellt ist, dass die Daten den Transformer in der angegebenen Reihenfolge erreichen. Entspricht die Feature-Reihenfolge nicht der Einstellung im Transformer können ggf. falsche Ergebnisse entstehen.
In unserer Videoserie FME zum Kaffee sehen Sie auch, wie das Ganze funktioniert. Das Video und weitere Folgen finden Sie in unserem YouTube Kanal – Schauen Sie doch mal vorbei!
Verena Henners