Mein Anwendungsfall für influxDB ist das Speichern und Verarbeiten von Prozessdaten, die von verschiedenen SPSen kommen. Ich visualisiere diese Daten mit grafana. In einem ersten Pilotprojekt habe ich die Schemadesign-Richtlinien von influxDB verwendet, wobei ich einen generischen Messungsnamen verwendet habe und die verschiedenen Wertequellen mittels Tags getrennt habe.Schemaentwurf in influxdb
Zum Beispiel, wenn ich 2 Pumpen in der ‚Säure‘ Pumpengruppe und 2 Pumpen im ‚caustic‘ Pumpengruppe, von denen mir den Druck Recond:
- pump_pressure {pump: pump_1, group: acid}
- pump_pressure {pump: pump_2, group: acid}
- pump_pressure {pump: pump_1, group: caustic}
- pump_pressure {pump: pump_2, group: caustic}
In meinem Anwendungsfall, das Ende -user möchte beispielsweise mit Grafana eigene Trends setzen können. Während diese Art der Datenaufzeichnung den Schemadesign-Richtlinien von influxDB entspricht (denke ich), ist sie für nicht technische Personen, die nicht gewohnt sind, mit SQL zu arbeiten und zu denken, sehr verwirrend.
Deshalb bin ich die Daten in der Art und Weise zu speichern versucht, dass sie verwendet werden, und ist die allgemeine Art und Weise in ähnlichen Produkten arbeiten (Historiker):
- ACID_pump_1_pressure
- ACID_pump_2_pressure
- CAUSTIC_pump_1_pressure
- CAUSTIC_pump_2_pressure
Dies würde es viel einfacher für den Endbenutzer, um Trends zu machen, wie 1 Messung = eine Datenquelle, und sie müssen sich nicht um where
und group by
Klauseln sorgen.
Kann mir jemand auf einige Hinweise hinweisen, was der Einfluss der letzteren auf influxDB Leistung und Speicher wäre. Nehmen die Daten auf diese Weise mehr Platz ein? Bitte beachten Sie, dass die letztere Methode zu einigen tausend Messungen führen kann, aber ihre Kardinalität wäre alle 1.
Hallo, danke für deine Antwort. Die Messungen, die typischerweise in Fabriken erforderlich sind, sind nicht so einfach zu strukturieren wie die Server-CPU-Lasten und die Speichernutzung in Rechenzentren.Wenn ein Benutzer an einer Pumpenströmung interessiert ist, möchte er die Strömung dieser Pumpe und keine andere. Ich würde gerne wissen, dass es eine Performance/Storagepensity gibt, wenn ich separate Messungen für jeden Wert verwenden würde? – coussej
@coussej AFAIK, gibt es keine Nachteile in Bezug auf die Speicherung oder Leistung, wenn Sie eine bestimmte Art von Wert pro Zeitreihe speichern wie "A" Zeitreihe besteht aus Durchflusswert aller Pumpen und "B" Zeitreihe besteht aus einem anderen Parameter aller Pumpen. Da Abfragen, wenn sie ausgeführt werden, für eine Zeitreihe spezifisch sind, sehen Sie keinen Unterschied im Vergleich zum Speichern mehrerer Arten von Werten in einer einzelnen Zeitreihe. Und denken Sie daran, eine Datenbank kann mehrere Zeitreihen haben (genau wie eine Tabelle in einer SQL DB) – Srikanta