Datensortierung
|
|
Die Datensortierung ist ab ThingWorx 9.7 verfügbar.
|
Mit den Streaming-Daten von Geräten vor Ort sind Ereignisse und Abonnements für Geschäftslogik, Datenverarbeitung usw. vorhanden. Daten, die über ein Abonnement verarbeitet werden, werden in die unterstützte Datenbank aufgenommen. Die Datenverarbeitung in ThingWorx wird parallel ausgeführt, um viele Dinge und zugeordnete Eigenschaftswerte zu unterstützen.
Während Daten zu ThingWorx strömen und über Ereignisse und Abonnements verarbeitet werden, werden sortierte Daten für die sequenzielle Verarbeitung von Ereignissen in Eigenschaften erwartet. Verarbeitete Daten sollten auch in sequenzieller Reihenfolge in der Datenbank aufgenommen werden.
Problemstellung
Wenn die Datenreihenfolge nicht beachtet wird, hat dies Auswirkungen auf die Generierung von Ereignissen, Abonnements und letztendlich auf die Datenaufnahme. Dieses Szenario wird während Trennung und Wiederherstellung der Verbindung von Kepware im Hochverfügbarkeits-Setup beobachtet (in Gegenwart eines Connection Server zum Ausgleichen von WebSocket-Verbindungen). Die Datensortierung wird für Bereitstellungen mit Einzelserver- und Hochverfügbarkeits-Setup unterstützt.
Lösung
Die Datensortierung hilft bei Folgendem:
• Behalten Sie bei Connection Server die Bindung für ein bestimmtes Ding zu einem Paar von ThingWorx-ID und Websocket(WS)-Kanal-ID bei. Dadurch wird sichergestellt, dass Eigenschaftswertaktualisierungen für ein bestimmtes Ding immer an bestimmte ThingWorx und bestimmte WebSocket-Kanäle gesendet werden.
• Der eMessage Connector (eMC) verwendet intern den Connection Server, um mit ThingWorx Platform zu kommunizieren. Die Änderungen für den Connection Server helfen eMessage Connector (eMC), sortierte Daten an ThingWorx zu senden.
• Implementieren Sie auf ThingWorx Platform den Akka Actor pro Ding. Bei jedem eingehenden Eigenschaftswert für ein Ding wird ein Actor erstellt, und der Eigenschaftswert wird an das Postfach des Actors übertragen. Der Akka Actor fordert dann die Nachrichten aus der Warteschlange an und verarbeitet sie sequenziell, um die sortierte Datenverarbeitung auf Plattform-Seite zu gewährleisten.
• Sie können die folgende Einstellung verwenden, um die Datensortierung in BasicSettings von platform-settings.json zu aktivieren.
|
Einstellung
|
Typ
|
Wert
|
Standardwert
|
|
EnableDataOrdering
|
BOOLEAN
|
wahr ODER falsch
|
falsch
|
• Die thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled-Metrik am /Metrics -Endpunkt hilft Ihnen dabei, die Einstellung für die Datensortierung zu überwachen:
|
Metrikname
|
Typ
|
Beispiel
|
|
thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled
|
Anzeige
|
# HELP thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled Data ordering enabled # TYPE thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled gauge thingworx_WSExecutionProcessingSubsystem_isDataOrderingEnabled{prefix="Platform.Core.Subsystems",category="WSExecutionProcessingSubsystem",platformid=""} 0.0
|
|
|
Die Ereignissortierung ist eine Funktion, die in Version 9.5 bereitgestellt und verfügbar ist. Klicken Sie in der Abonnementdefinition auf Execute Events Sequentially, um diese Konfiguration zu aktivieren.
|
Sonstige Komponentenwirkungen
• Java und C SDK können Eigenschaftswerte an ThingWorx mit den folgenden APIs senden:
VirtualThing.setProperty()
VirtualThing.updateSubscribedProperties();
Unter Verwendung der vorherigen APIs werden Eigenschaften nacheinander an ThingWorx Platform gesendet.
• Wenn sich hinter dem Lastenausgleich ein Connection Server befindet, müssen Sie die Konfiguration des Lastenausgleichs so anpassen, dass eine Bindung erreicht wird. Ohne diese Daten ist die Sortierung nicht möglich.
• Korrekturen der Datensortierung sind in den folgenden Komponenten verfügbar:
◦ Connection Server 9.3.0 und höher
◦ eMessage Connector 2.6.0 und höher
◦ Kepware 6.16 und höher
Vorteile
Die Datensortierung bietet die folgenden Vorteile:
• Daten werden der Reihe nach verarbeitet, um eine zuverlässige Datenspeicherung und -verarbeitung zu ermöglichen.
• Kunden können zwischen Parallelverarbeitung mit hohem Durchsatz und serialisierter und geordneter Datenverarbeitung wählen.
• ThingWorx Lösungen, die Daten von Kepware erfassen, können Daten in der richtigen Reihenfolge empfangen und verarbeiten.