Apama Analytics Builder 10.5.7 | Bedienungsanleitung für Apama Analytics Builder for Cumulocity IoT | Verbindungen und Blöcke | Eingabeblöcke und Ereignissteuerung
 
Eingabeblöcke und Ereignissteuerung
Eingabeblöcke stellen dem Modell Daten aus externen Quellen zur Verfügung (zum Beispiel Messwerte von Cumulocity IoT). Viele Datenquellen haben auf jedem Dateneintrag einen Zeitstempel, der den Zeitpunkt angibt, zu dem eine Messung oder ein Ereignis tatsächlich erfolgt ist. Bei der Übertragung der zu verarbeitenden Daten an das Apama-System kann es zu Verzögerungen kommen, was dazu führt, dass Apama die Ereignisse nicht in der richtigen Reihenfolge empfängt.
Datenquellen mit Zeitstempeln (wie zum Beispiel Messwerte) können neu angeordnet werden. Operationen haben zum Beispiel keine Zeitstempel und werden daher so verarbeitet wie sie empfangen werden, ohne Neuanordnung.
Apama Analytics Builder stellt mehrere Eingabeblocktypen zur Verfügung, die Datenquellen mit Zeitstempeln verwenden. Diese Blocktypen haben den Parameter Zeitstempel ignorieren, mit dem Sie die Neuanordnung der Daten deaktivieren können. Die Eingaben werden dann so verarbeitet, wie sie empfangen werden. Siehe auch Häufig vorkommende Blockeingänge und Parameter.
Die folgende Tabelle gibt an, ob die zur Verfügung stehenden Eingabeblocktypen in der Lage sind, die Daten neu anzuordnen:
Eingabeblocktyp
Neuanordnung ist möglich
Messwerteingabe
Ja
Ereigniseingabe
Ja
Alarmeingabe
Ja
Operationseingabe
Nein
Managed-Object-Eingabe
Nein
Bei Datenquellen, die Zeitstempel auf den Dateneinträgen haben, kann der Eingabeblock mit Ereignissen umgehen, die nicht in der richtigen Reihenfolge empfangen wurden. Zu diesem Zweck halten die Eingangsblöcke alle empfangenen Ereignisse in einem Umordnungspuffer und verzögern deren Verarbeitung bis die vordefinierte Verzögerungszeit ab dem Zeitstempel der Quelle abgelaufen ist. Durch das Verzögern der Ereignisverarbeitung relativ zum Zeitstempel der Quelle kann der Eingabeblock die Ereignisse neu anordnen. Der entscheidende Parameter für diesen Prozess ist die Dauer der Zeit, um die die Ereignisse verzögert werden. Sie können die Zeit in Sekunden festlegen, um die die Eingabewerte von den Eingangsblöcken verzögert werden. Senden Sie hierfür eine POST-Anfrage an Cumulocity IoT, die den Wert des Keys timedelay_secs ändert. Ausführliche Informationen finden Sie unter Konfiguration.
Die Eingabeblöcke gehen davon aus, dass Ereignisse zwar in einer anderen Reihenfolge geliefert werden können, sie jedoch von Apama gemäß der definierten Verzögerungszeit empfangen werden. Wenn ein Ereignis nach einer Verzögerung von mehr als den definierten Sekunden empfangen wird (das heißt, wenn es eine Differenz gibt zwischen dem Zeitstempel des Ereignisses und der Zeit auf dem System, auf dem Apama ausgeführt wird), dann wird es verworfen. Wenn der Wert für die Verzögerungszeit also zu niedrig eingestellt ist, dann kann eine kleine Verzögerung dazu führen, dass Apama ein Ereignis verwirft, was zu fehlerhaften Ergebnissen führen kann. Je höher der Wert für die Verzögerungszeit ist, desto größer ist die Verzögerung vor der Verarbeitung eines Ereignisses. Daher ist es wichtig, einen geeigneten Wert für die Verzögerungszeit zu finden, der zu der Umgebung passt, in der die Ereignisse an Apama geliefert werden.
Der Korrelator schreibt die Anzahl der verworfenen Ereignisse regelmäßig in das Korrelatorlog. Siehe Konfiguration (den Key zur Drosselung der Protokollierung) und Korrelatorlog anzeigen.