Robotron Datenbank-Software GmbH Firmenlogo
MIT DATEN MEHR BEWEGEN.

Funktionsbeschreibung und Anwendung

Der Aggregator-Block sammelt einlaufende Nachrichten. Die in Nachrichten enthaltenen Felder können entsprechend der Konfiguration verschiedenartig behandelt werden.

Ein Anwendungsbeispiel ist eine Minimum/Maximum-Aggregation, um das aufkommende Datenvolumen zu reduzieren. Beispielsweise laufen Temperaturdaten der Außentemperatur im Sekundentakt ein, statt aber 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 in Gesamtkonfiguration Stream Processor mit Aggregator-Block und Konfiguration des Aggregator-Block zu finden.

Table 1. Konfigurationsparameter Aggregator-Block
ParameterBeschreibung

Name

Name der Blockinstanz.

Into

Name der Blockinstanz des Folgeblocks an welchen Ausgabenachrichten weitergeleitet werden sollen.

Window - Based On

Auswahl des Window-Typ

  • Sample-basiertes Window: nutzt die Sample-Anzahl im Puffer, unabhängig von der Zeit. Bei einem (voll) gefülltem Windowpuffer wird mit jedem Einlaufen einer neuen Nachricht eine alte gelöscht. Bei einem gefüllten Window liegt deshalb immer eine gleiche Anzahl von Samples für nachfolgende Berechnungen vor. Das Triggern erfolgt ausschließlich anhand einlaufender Nachrichten.

  • TimeMs-basiertes Window: nutzt die Zeit in Millisekunden (timestamp) als Grundlage für das Verwerfen alter Samples aus dem Puffer. Es kann passieren, dass ganz unterschiedliche Sample-Anzahlen für eine Berechnung vorliegen. Das Fenster und die Aggregatsbildung agieren getriggert durch die Systemzeit und unabhängig von einlaufenden Nachrichten. Die Eigenschaft timestamp ist für den Windowtyp TimeMs zwingend erforderlich!

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:

  • ignore: Daten werden verworfen und bei der Ausgabe nicht beachtet

  • collect: Sammeln der Values der einlaufenden Nachrichten des zu bewertenden „Zeitraumes“ in einem Array

  • min: minimaler Datenwert (erfordert numerische Values)

  • max: maximaler Datenwert (erfordert numerische Values)

  • first: zuerst eingelaufener Datenwert

  • last: zuletzt eingelaufener Datenwert

  • sum: Summe der eingelaufen Datenwerte (erfordert numerische Values)

  • avg: mathematisch Durchschnitt (erfordert numerische Values)

  • median: Median (erfordert numerische Values)

  • stddev: Standardabweichung (erfordert numerische Values)

  • default: legt Default-Funktion für alle nicht explizit genannten Felder fest

Output Topic

Name des modulinternen Output Topic, um Output-Nachrichten auf die Edge Broker Topic(s) zu mappen.

Beispielkonfiguration Aggregator-Block

  • „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.

88
Figure 1. Konfiguration des Aggregator-Block
87
Figure 2. Gesamtkonfiguration Stream Processor mit Aggregator-Block