ThingWorx Modelldefinition in Composer > Datenspeicher > Persistenzanbieter > InfluxDB als Persistenzanbieter verwenden
InfluxDB als Persistenzanbieter verwenden
Übersicht
Wenn Sie in Ihrem System intensiv mit Zeitreihendaten arbeiten und sich Ihre Implementierung für Persistenz/Datenabrufe stark auf Wert-Streams oder Streams stützt, empfehlen wir die Verwendung von InfluxDB als Persistenzanbieter in ThingWorx. InfluxDB ist ein hochleistungsfähiger Datenspeicher, der speziell für Zeitreihendaten entwickelt wurde. Er ermöglicht Datenaufnahme mit hohem Durchsatz sowie Komprimierung und Echtzeitabfragen der erfassten Daten. InfluxDB kommt in allen Anwendungsfällen als Datenspeicher zum Einsatz, bei denen große Mengen von Daten mit Zeitstempel verarbeitet werden, beispielsweise DevOps-Überwachungsdaten, Protokolldaten, Anwendungsmetriken, Daten von IoT-Sensoren oder Echtzeitanalysedaten. Der Datenspeicher stellt auch andere Funktionen bereit, unter anderem Datenaufbewahrungsrichtlinien. InfluxDB Enterprise bietet Hochverfügbarkeit sowie eine hochgradig skalierbare Clustering-Lösung für Anwendungsfälle mit Zeitreihendaten.
InfluxDB-Datenpersistenz-Speicheranbieter sind als Teil der Standardinstallation für PostgreSQL, MS SQL oder Azure SQL verfügbar, die für Eigenschaftsanbieter verwendet werden:
InfluxPersistenceProviderPackage
Influx2PersistenceProviderPackage
ThingWorx unterstützt OSS-, Enterprise- und Cloud-Versionen.
InfluxDB OSS 1.x und InfluxDB Enterprise 1.x werden über InfluxPersistenceProviderPackage unterstützt. InfluxDB Enterprise wird nur von InfluxDB 1.x unterstützt.
InfluxDB OSS 2.x wird über Influx2PersistenceProviderPackage unterstützt.
InfluxDB Cloud wird nur über Influx2PersistenceProviderPackage unterstützt.
Unter Release Advisor finden Sie die unterstützten spezifischen Versionen.
* 
Der InfluxDB-Datenanbieter unterstützt derzeit ausschließlich Wert-Streams und Streams. Unterstützung für Datentabellen, Wikis und Blogs ist nicht verfügbar.
* 
Datenexport wird für InfluxPersistenceProviderPackage und Influx2PersistenceProviderPackage unterstützt.
* 
InfluxDB wird nicht als Eigenschaftsanbieter unterstützt.
* 
Kunden, die ein Upgrade auf ThingWorx 9.3.9 und höher sowie ThingWorx 9.4.0 und höher durchführen möchten und InfluxDB OSS 2.0 verwenden, müssen zur Nutzung von Influx2PersistenceProviderPackage zunächst ein Upgrade auf ThingWorx 9.3.8 durchführen, um zu InfluxDB OSS v2.6 zu wechseln, da vor dem Upgrade auf InfluxDB v2.6 ein Export erforderlich ist. Für InfluxDB Cloud ist kein Export vor dem Upgrade erforderlich. Daher ist es nicht erforderlich, vor einem Upgrade auf ThingWorx 9.3.9 und höher sowie ThingWorx 9.4.0 und höher zu ThingWorx 9.3.8 zu wechseln.
Ausgangsarchitektur mit InfluxDB Enterprise und ThingWorx
* 
Im Diagramm oben wird InfluxDB Enterprise verwendet. Bei Verwendung von InfluxDB Open Source würde das Architekturdiagramm identisch aussehen, jedoch mit nur einem Knoten arbeiten. Für InfluxDB Cloud wird die Datenbank außerhalb der ThingWorx Umgebung gehostet und vom InfluxData-Unternehmen verwaltet.
Die folgenden Begriffe werden in dieser Dokumentation verwendet, wenn auf die Konfiguration für InfluxDB Enterprise Bezug genommen wird:
Lastenausgleich: InfluxDB Enterprise lässt sich nicht zum Lastenausgleich verwenden. Dieser muss von einem Administrator konfiguriert werden.
Cluster: Ein InfluxDB Enterprise-Cluster besteht aus zwei Typen von Knoten – Metaknoten und Datenknoten.
Datenknoten: Hier liegen sämtliche Roh-Zeitreihendaten. Für Hochverfügbarkeit ist mindestens ein Replikationsfaktor von 2 erforderlich.
Metaknoten: Die Aufgabe dieser Knoten ist einfach – sie müssen den Status konsistent halten. Sie enthalten lediglich grundlegende Statusinformationen wie Aufbewahrungsrichtlinien, Benutzer und Datenbanken. In Umgebungen mit Hochverfügbarkeit sind mindestens drei Metaknoten erforderlich.
Weitere Informationen zum Thema Hochverfügbarkeit finden Sie unter https://www.influxdata.com/blog/understanding-influxenterprise-what-is-a-cluster/.
Auswahl der richtigen Influx-Datenbankoption
Nachfolgend finden Sie eine Übersicht der zwei InfluxDB-Optionen, die derzeit für PTC Kunden lokal verfügbar sind. Die Datenbank-Software-Optionen und die zugrunde liegenden Support-Optionen sollten bei der Wahl eines Influx-Produkts sorgfältig abgewogen werden. Wenden Sie sich bei Fragen zur Auswahl der richtigen Datenbankoptionen an den Influx-Support unter: https://www.influxdata.com/contact-sales. PTC Kunden sollten die Angabe machen, dass sie PTC ThingWorx Benutzer sind.
InfluxDB Open Source OSS (einzelner Knoten)
Nur einzelner Knoten, nicht skalierbar
Kostenlos
Community-basierter Influx-Support, verfügbar auf der Influx-Community-Website unter InfluxData Community Forums.
Nicht empfohlen für Produktionsinstanzen aufgrund eingeschränkten technischen Supports durch Influx (kein Live-Support in dringenden Situationen)
PTC Kunde ist verantwortlich für Pflege und Überwachung der Datenbank.
PTC ist bestrebt, die besten Empfehlungen hinsichtlich Influx zu geben, doch in einigen Situationen ist eine Eskalation an den technischen Support von Influx erforderlich.
InfluxDB Enterprise
Wenn Sie einen Datenspeicher für höhere Datenvolumen und Durchsatzgeschwindigkeiten suchen, als sie derzeit mit anderen Datenbanken möglich sind, kann InfluxDB Enterprise Ihnen folgende Vorteile bieten:
Höhere Datenaufnahmerate
Sie können mehr als ein Daten-Repository für Laufzeitdaten nutzen. Beispielsweise können Sie relationale Daten in PostgreSQL hinterlegen und InfluxDB für Stream- und Wert-Stream-Daten verwenden, die in großen Mengen anfallen. Wenn Sie einen Stream oder Wert-Stream definieren, verwendet ThingWorx den standardmäßigen Laufzeitdatenspeicher-Anbieter. Sie können die Konfiguration aber auch so anpassen, dass ein beliebiger angegebener Persistenzanbieter verwendet wird. Sie können weiterhin Daten von anderen Datenanbietern exportieren und in InfluxDB importieren. ThingWorx kümmert sich um die Datenabstrahierung.
Cloud-fähige Architektur (horizontal skalierbar, jedoch nur mit InfluxDB Enterprise)
Hohe Verfügbarkeit
Technischer Support durch Influx nach Abschluss eines Vertrags über die Influx Support-Website unter InfluxData.
PTC Kunde kann, falls erforderlich, Tickets bei Influx eröffnen und um Zusammenarbeit mit PTC zu bitten.
PTC Kunde ist verantwortlich für Pflege und Überwachung der Datenbank.
InfluxDB Cloud (außerhalb der ThingWorx Umgebung gehostet und vom InfluxData-Unternehmen verwaltet)
InfluxDB Cloud bietet die folgenden Vorteile:
InfluxDB Cloud ist eine cloudnative, elastisch skalierbare, serverlose Plattform für mehrere Mandanten.
Die Plattform bietet Verfügbarkeit, Dauerhaftigkeit und Skalierbarkeit in mehreren Regionen unter AWS, Google und Azure.
Sie ist sicher und gehärtet, und alle aktuellen Sicherheitsfunktionen und Patches sind installiert und konfiguriert.
InfluxDB Cloud gleicht Cluster automatisch aus, verarbeitet Sharding und nutzt integrierte Replikationsfaktoren.
Optimale Vorgehensweisen
Reihengrenzwert
Eine Reihe ist die Gesamtzahl der Eigenschaften aller Dinge, die bei InfluxDB angemeldet sind. InfluxDB bietet ein gutes Leistungsniveau bei hohen Datenvolumen, die an eine kleine Anzahl von Dingen und Dingeigenschaften gesendet werden (beispielsweise mehrere Zehntausend oder mehrere Hunderttausend). Die Gesamtzahl an Reihen ist in InfluxDB standardmäßig auf 1 Million begrenzt. Dieser Grenzwert kann heraufgesetzt werden. Die Leistung von InfluxDB sinkt jedoch kontinuierlich, je höher die Reihenanzahl über diesem Grenzwert liegt.
Wenn Sie mit einer großen Anzahl von Dingen und Eigenschaften arbeiten, können Sie diejenigen mit dem höchsten Datenvolumen wählen und nur diese mit InfluxDB verknüpfen. Das entlastet PostgreSQL bzw. MSSQL.
Wenn Sie die Reihen auf mehrere Server aufteilen möchten, können Sie alternativ mehrere Instanzen des InfluxDB-Datenanbieters verwenden, die jeweils auf unterschiedliche InfluxDB-Serverinstanzen verweisen.
Grenzwert für Schreibvorgänge
Der Grenzwert beträgt 100.000 Schreibvorgänge pro Sekunde bei einer VM mit 60 GB Arbeitsspeicher und 32 Kernen. Eine Überschreitung dieses Grenzwerts kann Probleme in ThingWorx verursachen: Es können dann Ressourcen für die Verarbeitung jeglicher Anforderungen oder Jobs fehlen, beispielsweise für Schreibvorgänge in die Datenbank. Passiert das, stürzt ThingWorx ab, während InfluxDB weiterhin in die Datenbank schreibt. Dieses Problem tritt bei PostgreSQL nicht auf, weil PostgreSQL zum Engpass wird und ThingWorx zu keinem Zeitpunkt die nötigen Ressourcen fehlen, um interne Aufgaben zu bearbeiten.
SSL/sichere Verbindung
InfluxDB unterstützt SSL- und HTTPS-Verbindungen. Sie können SSL- und HTTPS-Verbindungen aktivieren, um die Sicherheit zu erhöhen, wenn das Netzwerk zwischen ThingWorx und InfluxDB nicht unterstützt wird. Ein selbstsigniertes Zertifikat ist ausreichend, sofern der signierende private Schlüssel sicher aufbewahrt wird.
Bekannte Einschränkungen in InfluxDB bezüglich Eigenschaften-Basistypen
Sie können den Basistyp einer Eigenschaft nicht ändern, nachdem die Eigenschaft in einem Wert-Stream protokolliert wurde. Weitere Informationen finden Sie auf der englischen Seite Type conflict on insert int value in float field#3460.
Eigenschaften bereinigen
Die Dienste PurgeAllPropertyHistory, PurgeSelectedPropertyHistory und PurgePropertyHistory können verwendet werden, um Eigenschaften endgültig aus InfluxDB zu löschen (bereinigen). Verwenden Sie die Parameter startDate und endDate, um einen Bereich anzugeben.
* 
Das Bereinigen wird bei Verwendung des Influx2PersistenceProviderPackage-Anbieters nicht unterstützt. Die Dienste PurgePropertyHistory, PurgeAllPropertyHistory und PurgeSelectedPropertyHistory haben keine Auswirkung.
War dies hilfreich?