Konfigurationsbereich

Im Konfigurationsbereich können die ausgewählten Elemente konfiguriert werden.
Dies gilt für fast alle Elemente des Diagramms, lediglich für den Funnel stehen keine Konfigurationsmöglichkeiten zur Verfügung.

Konfigurationsbereich

Der Konfigurationsbereich kann als Vollbild angezeigt oder (unter anderem durch einen Doppelklick im Diagramm-Bereich) ausgeblendet werden.

Allgemeine Konfiguration

Standardmäßig werden im Konfigurationsbereich zunächst Einstellungsmöglichkeiten zur aktuell gewählten Prozessgruppe dargestellt. Sollte ein anderes Element ausgewählt worden sein, kann die Konfiguration für die aktuelle Prozessgruppe durch das Klicken auf einen leeren Bereich im Diagramm erneut geöffnet werden.

Neben der Konfiguration der Prozessgruppe besteht zudem die Möglichkeit, alle in der ausgewählten und den darunter liegenden Prozessgruppen in Queues wartenden Flowfiles zu löschen:

config delete flowfiles

Zudem können vorhandene Prozessgruppen als JSON-Dateien heruntergeladen werden:

config download group

Diese JSON-Datei kann bei der Erstellung von Prozessgruppen ausgewählt werden, um sie an einem anderen Ort bzw. einem anderen System wiederherzustellen.

Toolbar des Konfigurationsbereichs

Bei der Konfiguration von Prozessoren befindet sich am oberen Rand des Konfigurationsbereichs eine Toolbar.

Toolbar

Bei der Auswahl eines Prozessors wird standardmäßig der Config Panel angezeigt, wobei zusätzliche Funktionen in der Toolbar zur Verfügung stehen.

In der folgenden Tabelle sind diese Funktionen in der Toolbar beschrieben:

Data

Wechselt zur Data-Panel-Ansicht.

Config

Wechselt zur Config Panel-Ansicht.

Data&Config

Wechselt zur Ansicht, in der Config- und Data-Panel gleichzeitig nebeneinander angezeigt werden.

Setting

Öffnet die Ansicht der Prozessor-Properties im Config Panel, über den individuelle Anpassungen des ausgewählten Prozessors ermöglicht werden.

Setting

Öffnet den Editor im Config Panel.
Diese Option steht nur bei einigen bestimmten Prozessoren zur Verfügung. Falls der Editor nicht zur Verfügung steht, wird dieser Button für den ausgewählten Prozessor nicht eingeblendet.

Setting

Öffnet die Ansicht der Settings im Config Panel, über den allgemeine Anpassungen der ausgewählten Prozessoren vorgenommen werden können.

Setting

Ermöglicht das Anlegen von Dynamic Properties für den ausgewählten Prozessor.

Setting

Ermöglicht das Ein- und Ausblenden von Konfigurationsfeldern, die keine Pflichtangabe sind und zur zusätzlichen Konfiguration des Prozessors genutzt werden können.
Standardmäßig sind diese Felder ausgeblendet und müssen daher zunächst eingeblendet werden.

Setting

Verifiziert die Eingaben im Config Panel.

Setting

Ermöglicht das xref:developing.adoc#isolated-execution durch eine isolierte Ausführung.

Setting

Blendet die Fenster der Ergebnisse einer isolierten Ausführung ein und aus.

Config Panel

Wird der Button "Config" ausgewählt, stehen unterschiedliche Anpassungsmöglichkeiten der Prozessoren zur Verfügung.
Neben allgemeinen Einstellungsmöglichkeiten können individuelle Anpassungen vorgenommen werden und angelegte Prozessoren getestet werden. Für diese Anpassungsmöglichkeiten stehen ebenfalls unterschiedliche Ansichten zur Verfügung, die in Prozessor-Properties, Editor und Settings aufgeteilt sind und im Folgenden genauer beschrieben werden.

Prozessor-Properties

Die Prozessoren besitzen neben den allgemeinen Einstellungsmöglichkeiten, die für alle Prozessoren ähnlich sind, die prozessorspezifischen Properties. Dies ist bei allen Prozessoren zugleich die Ansicht, die im Config Panel zuerst angezeigt wird.

Prozessor-Properties

Eingabemöglichkeiten

Entsprechend der Typen der Daten gibt es Auswahllisten, Checkboxen und Textfelder. Notwendige Felder sind mit einem * markiert.

Erlauben die Felder die Nutzung der Expression Language, wird dies durch ein $ angezeigt.

Felder, die eine Expression Language erlauben, zeigen den Wert der Ausführung in einer gestrichelten Box unterhalb des Textfeldes an. Diese wird aber nur angezeigt, wenn der Wert von dem Eingabewert abweicht (Daten aus gewählten Ausführungen werden bei der Evaluierung berücksichtigt). Änderungen bei der Eingabe der Properties werden on-the-fly ausgewertet und das Ergebnis entsprechend angezeigt.

Ist an einem Feld kein Wert gesetzt, ist dieses hingegen leicht ausgegraut.
Zusätzlich werden Warnungen unter den Eingabefeldern angezeigt, sollten die getätigten Angaben fehlerhaft sein oder fehlen.

In dem mehrzeiligen Editor wird die Expression Language vollständig unterstützt. Es gibt eine Vervollständigung (aufzurufen über Ctrl-Space), Syntax-Highlighting sowie die Markierung von Fehlern. Die Vervollständigungen gibt es für die EL innerhalb von ${…​} sowie für Parameter innerhalb von #{…​}. Die Vervollständigungen sind dann aktiv, wenn der Editor auf den 'nifi'-Modus eingestellt ist. Für die Nutzung der Parameter muss zudem ein Parameter-Context an der Prozessgruppe zugewiesen sein.

Dynamic Properties

Einige Prozessoren unterstützen neue, Nutzer-erstellte Properties, welche durch den -Button angelegt werden. Diese dynamischen Angaben können für unterschiedliche Zwecke genutzt werden. Sie können beispielsweise eingesetzt werden, um beim QueryRecord-Prozessor neue Filteroptionen hinzuzufügen oder beim InvokeHTTP-Prozessor neue HTTP-Header zu ergänzen.
Wofür die dynamischen Properties bei einzelnen Prozessoren verwendet werden können, ist bei eingeschalteten Tooltips bei dem ausgewählten Prozessor im Konfigurationsbereich beschrieben. Sollten die dynamisch angelegten Properties Ergebnisse durch z.B. eine Query generieren, dann stehen die angelegten Properties ebenfalls als Relation zu anderen Elementen im Diagramm zur Verfügung.

Parameter

Ist an der Prozessgruppe, in welcher die Prozessoren liegen, ein Parameter-Kontext gesetzt, können den Properties der Prozessoren die Parameter aus diesem Kontext zugeordnet werden. Parameter-Kontexte werden in den zentralen Settings konfiguriert und sind im Abschnitt Parameter Contexts ausführlicher beschrieben.

Editor

Bei einigen Prozessoren gibt es neben der Properties-Ansicht noch einen weiteren speziellen Moduleditor, der dann in der Toolbar sichtbar wird. Dies betrifft beispielsweise die Transform-Prozessoren JSONataTransformJSON und TransformXML.

Moduleditor

Editor-Toolbar

Für den Editor existieren ebenfalls individuelle Funktionen, die über die Toolbar aufgerufen werden können. Genau wie in der Prozessor-Properties-Sicht kann der Prozessor über den play orange-Button isoliert ausgeführt werden. Die Ergebnisse des Tests können mit dem anliegenden Pfeil-Button ein- oder ausgeblendet werden.

Darüber hinaus stehen weitere Funktionen in einer dritten Toolbar-Leiste zur Verfügung, die in der folgenden Tabelle aufgeführt sind.

Upload

Ermöglicht das Hochladen einer Textdatei in den Editor des Config Panels.

Download

Ermöglicht das Herunterladen des Inhalts im Editor.

Löschen

Löscht den gesamten Inhalt im Editor.

Syntax

Ermöglicht, die dargestellte Programmiersprache oder das Format des Inhalts im Editor anzupassen. Dadurch kann das Highlighting geändert und die Lesbarkeit verbessert werden.

Pretty Print

Im spezifischen Fall von XML und JSON besteht die Option, pretty prints zur verbesserten Übersicht ein- und auszuschalten. Bei anderen Formaten wird dieser Button nicht angezeigt.

Wrap

Schaltet das Text Wrapping im Editor ein und aus.

Live Results

Aktiviert Echtzeit-Ergebnisse, wodurch jede Eingabe im Editor zur Ausführung des Prozessors führt. Die Änderungen können dadurch in Echtzeit verfolgt werden.

Wrap

Blendet die Toolbar im Editor ein und aus.

Settings

Unter den Settings im Konfigurationsbereich können allgemeine Einstellungen vorgenommen werden, die für alle Prozessoren zur Verfügung stehen. Hierunter fallen sowohl generelle Einstellungen, wie beispielsweise der angezeigte Name eines Prozessors, als auch spezifischere Änderungen, wobei einige dieser Auswahlmöglichkeiten im Folgenden beschrieben sind.

Settings

Processor Name

Der angezeigte Name des Prozessors. Sollte im besten Fall genutzt werden, um die Übersichtlichkeit der angelegten Flows zu verbessern.

Penalty Duration

Die Penalty Duration ist ebenfalls eine Property, die für jeden Prozessor verfügbar ist und standardmäßig auf 30 sec gesetzt ist.
Diese Wartezeit bezieht sich auf ein bestimmtes FlowFile. Es werden also 30 Sekunden gewartet, bevor ein neuer Versuch unternommen wird, genau dieses FlowFile zu verarbeiten.

Ein Beispiel wäre ein PutFile-Prozessor, der ein FlowFile nicht auf die Festplatte schreiben kann, weil eine Datei mit diesem Namen bereits existiert. Möglicherweise entfernt ein zweiter Prozess parallel diese Files, wodurch das Schreiben nach einer bestimmten Zeit erneut funktioniert.

Yield Duration

Ein Yield kann von einem Prozessor ausgelöst werden. Yield Duration ist hierbei die Property an jedem Prozessor und ist per Default auf 1 sec eingestellt. Dies ist die Zeit, die der Prozessor nach einem internen (vom Prozessor gefangenen) Fehler nicht mehr ausgeführt werden soll.

Ein Beispiel ist ein FTP-Prozessor, der den eingestellten FTP-Server nicht erreichen kann, es allerdings abzusehen ist, dass der Server nach kurzer Zeit wieder erreichbar sein wird (z.B. instabiles Netz).

Neben dem Yield an jedem Prozessor für die Fehler, die dieser Prozessor selbst erwartet und versteht, gibt es zudem einen zentralen Yield. In einem Fall, in dem durch einen Prozessor eine Exception generiert wird, die nicht erwartet oder behandelt wurde, wird durch NiFi ein zentraler Timer von 30 Sekunden gestartet (einstellbar mit nifi.administrative.yield.duration), bis der Prozessor erneut ausführbar ist.

Bulletin Level

Diese Option ermöglicht die Konfiguration des Levels, auf dem Meldungen vom Prozessor generiert werden. Die ausgewählten Level können genutzt werden, um Warnmeldungen zu sortieren und dadurch eine verbesserte Übersicht zu ermöglichen.

Concurrent Task

Mit dieser Einstellung kann angepasst werden, wie viele Threads gleichzeitig diesen Prozessor ausführen sollen.

Zusätzlich befindet sich in den zentralen Einstellungen in den Settings der Maximum Timer Driven Thread Count. Weitere Informationen hierzu finden Sie im Abschnitt Allgemeine Einstellungen

Scheduling

Prozessoren haben typischerweise ein Scheduling nach Zeitintervall (Scheduling Strategy = Timer driven). Der Defaultwert ist dabei auf Run Schedule = 0 sec gesetzt.
Die Prozessoren können somit ohne Unterbrechung auf neue FlowFiles warten. Allerdings existiert zudem ein globales Property in den nifi.properties: nifi.bored.yield.duration=10ms, wodurch diese Zeit minimal eingeschränkt wird. Somit wird zwischen den Aufrufen diese festgelegte Zeit gewartet, um das System nicht zu stark auszulasten. Bei Prozessoren, die keine hohe Aktivität aufweisen (beispielsweise bei Szenarien, in denen die Latenz kein Problem ist), kann der Wert ggf. weiter erhöht werden.

Zusätzlich besteht neben dem timer driven Scheduling die Möglichkeit, die Intervalle mit einem CRON String festzulegen.

Execution

Mit dieser Option wird festgelegt, auf welchen Knoten eines Clusters der Prozessor ausgeführt werden soll. Die Möglichkeit, Cluster zu erstellen, wird in einer späteren Version von IGUASU zur Verfügung gestellt.

Run Duration

Die Run Duration Property wird nicht von allen Prozessoren unterstützt. Es dient dazu, dem Prozessor mitzuteilen, dass er einen Batch an FlowFiles zusammen verarbeiten soll. Dies ist insbesondere sinnvoll bei einer großen Anzahl kleiner FlowFiles, deren Einzelausführung kurz ist.
Der Thread arbeitet für die angegebene Zeit ohne Thread-Wechsel und es wird nur einmal für alle FlowFiles committed. Je nach Szenario kann das Erhöhen der Run Duration eine signifikante Verbesserung der Performance auslösen.

Number of Retry Attempts

In den Settings der Prozessoren können für vorhandene Verbindungstypen, wie beispielsweise Success oder Failure, Retry-Optionen konfiguriert werden. Mit der Einstellung der Anzahl der Retry-Versuche, kann festgelegt werden, wie oft ein FlowFile von einem Prozessor zur Wiederverarbeitung aufgenommen werden soll. Falls die Wiederholungsversuche ebenfalls nicht erfolgreich abgeschlossen werden können, wird der FlowFile anderweitig weitergeleitet oder fallengelassen.

Back Off Policy

Die Back Off Policy ermöglicht die Konfiguration der Verarbeitung von weiteren Daten, während ein FlowFile sich im Retry befindet. Hierbei kann zwischen der Option Penalize, bei der weitere FlowFiles trotz Retry verarbeitet werden können, und Yield, mit dem keine anderen Daten verarbeitet werden bis alle Retries abgeschlossen sind, gewählt werden.

Maximum Back Off Period

In Kombination mit der gewählten Penalty- und Yield-Duration, wird die Dauer der Ausführung fortlaufend erhöht. Um für diese Dauer ein Limit zu definieren, kann die Maximum Back Off Period Option genutzt werde, um eine Grenze für den Zeitrahmen festzulegen.

Automatically Terminate / Retry Relationships

In diesem Bereich sind alle vorhandenen Beziehungstypen des Prozessors aufgelistet, die zur Verbindung mit anderen Elementen im Diagramm genutzt werden können.

Automatische Terminierung

Jede aufgelistete Beziehungsart muss entweder in einer ausgehenden Verbindung zu einem anderen Element oder durch eine automatisierte Terminierung adressiert werden. Zusätzlich besteht für die Beziehungsarten die Möglichkeit, Wiederholungsversuche durch die Retry-Option zu starten.

Data-Panel

Neben der Konfigurationsansicht kann über den Data-Button eine Datenansicht des gewählten Prozessors angezeigt werden.

Data Panel

Falls keine vorherige Ausführung in der Event-Tabelle ausgewählt wurde, sind beide Bereiche des Data Panels leer.

In der oberen Hälfte befindet sich ein Abschnitt, in dem Attribute angezeigt und Funktionen über eine Toolbar aufgerufen werden können. Die untere Hälfte zeigt den Eingang und Ausgang des FlowFiles, welches vom ausgewählten Prozessor verarbeitet wurde.

Data-Toolbar

Ähnlich wie im Config Panel befindet sich in der Datenansicht ebenfalls eine Toolbar, über die unterschiedliche Funktionen aufgerufen werden können:

Suche

Ermöglicht, zuvor heruntergeladene FlowFiles zu importieren.

Suche

Lädt angezeigte FlowFiles herunter.

Suche

Kopiert die angezeigten Daten, um diese z.B. als Input für eine Testausführung zu nutzen.

Suche

Fügt kopierte FlowFiles ein.

Suche

Entfernt die angezeigten Attribute und angezeigten Input- und Output-Daten.

Suche

Ermöglicht, die angezeigten Daten der Ausführung erneut in die Queue einzufügen. Bei der nächsten Ausführung des Prozessors werden diese Daten ebenfalls erneut verarbeitet und als Event-Typ "Replay" in der Event-Tabelle dargestellt.

Attribute

FlowFiles werden durch übergeordnete Informationen beschrieben, die als Attribute bezeichnet werden. Während einige Kernattribute von allen FlowFiles geteilt werden, wie z.B. filename oder path, können zusätzlich individuelle Attribute angelegt werden.

Zur Erstellung von neuen oder zur Änderung von vorhandenen Attributen können Prozessoren wie der UpdateAttribute-Prozessor genutzt werden. Je nach Prozessor können Attribute unterschiedlich eingesetzt werden, beispielsweise beim InvokeHTTP-Prozessor als HTTP Header oder bei dem QueryRecord-Prozessor um neue Abfragen zu erstellen.

Attribute

Zusätzlich befindet sich an dieser Stelle eine Toolbar für die dargestellten Attribute des FlowFiles. Dadurch können die vorhandenen Attribute durchsucht werden oder es können neue Attribute angelegt werden, um die Daten für das erneute Testen anzupassen.

Zudem kann zwischen zwei Darstellungsoptionen gewechselt werden, um die Übersicht den individuellen Anforderungen anzupassen.

Input & Output

Im unteren Bereich des Data-Panels wird der Inhalt des verarbeiteten FlowFiles in einem Editor angezeigt.

Input und Output

Die Daten werden hierbei in Input- und Output-Daten unterteilt, wobei letztere nur angezeigt werden, wenn durch den Prozessor eine Änderung an den Daten vorgenommen wurde. Steht ein Prozessor am Anfang einer Ausführung, hat er möglicherweise auch keine Input-Daten.