Aggregator
Funktionsbeschreibung und Anwendung
Der Aggregator-Block sammelt einlaufende Nachrichten. Die in Nachrichten enthaltenen Felder können entsprechend der Konfiguration verschiedenartig behandelt werden. Die Nachrichten werden in sich optional überlappenden Gruppen (Windows) basierend auf Zeit oder Anzahl zusammengefasst und verarbeitet.
Ein Anwendungsbeispiel ist eine Minimum/Maximum-Aggregation, um das aufkommende Datenvolumen zu reduzieren. Beispielsweise laufen Temperaturdaten der Außentemperatur im Sekundentakt ein, aber statt 60 Momentan-Werte zu übertragen, können für jede Minute nur der Minimum- und Maximum-Wert übertragen werden.
Die in der folgenden Tabelle erläuterten Parameter sind für die Konfiguration notwendig.
Parameter | Beschreibung |
---|---|
Name |
Name der Blockinstanz. |
Into |
Name der Blockinstanz des Folgeblocks an welchen Ausgabenachrichten weitergeleitet werden sollen. |
Window - Based On |
Auswahl des Window-Typ
|
Window – Size |
Die Windowgröße bestimmt den vorhandenen Puffer je nach Window-Typ sample-basiert (Wert als Anzahl) oder zeitbasiert (Wert in Millisekunden). |
Window - HoppingEach |
Häufigkeit einer Berechnung und Ausgabe je nach Window-Typ sample-basiert (Wert als Anzahl) oder zeitbasiert (Wert in Millisekunden). Ein hoher Wert führt seltener zu einer Ausführung und Ausgabe als ein kleiner. |
Behaviour |
Die verarbeitende Funktion kann für jedes Feld der einlaufenden Nachricht angegeben werden. Sollte eine ausgehende Nachricht keinen Zeitstempel (Key timestamp) besitzen, so wird dieser mit der aktuellen Zeit erzeugt. |
Default |
Default-Wert, der für alle Felder gilt, die nicht explizit angegeben sind. |
Name |
Feldname (Variablenname) im JSON der einlaufenden Nachricht |
Value |
Funktionsauswahl für das jeweilige Feld. Folgende Werttypen stehen zur Verfügung:
|
Beispielkonfiguration
Folgende Beispielkonfiguration ist in Abbildung 2 dargestellt:
-
„a“ ist explizit konfiguriert und wird in einem Array gesammelt (Value: "Collect") und ausgegeben.
-
„b“ wird explizit ignoriert (Value: "Ignore") und entfällt für die Ausgabenachricht.
-
Da der Timestamp nicht konfiguriert ist, erhält die Default-Funktion die Konfiguration first.