InfluxDB: Spezialisierte Datenbank für Messwerte und Logging

Eine Zeitreihendatenbank wie InfluxDB eignet sich für Messwerte besser als eine SQL-Datenbank – sie ist schneller und kann Daten automatisch zusammenfassen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
InfluxDB: Spezialisierte Datenbank für Messwerte und Logging

(Bild: Albert Hulm)

Lesezeit: 11 Min.
Von
  • Jan Mahn
Inhaltsverzeichnis

Messwerte können aus vielen Quellen stammen: zum Beispiel von physischen Sensoren, seien sie im vernetzten Zuhause, im Rechenzentrum oder in einer Industrieanlage. Aber auch Software kann Messwerte produzieren: Prozessor- und Netzwerkauslastung, Anzahl von Anfragen oder Bestellungen. Gründe, solche Messwerte zu speichern, gibt es ebenfalls viele: um Ursachen für Probleme zu finden, Durchschnittswerte zu berechnen oder übersichtliche Diagramme zu generieren.

Wer schon eine relationale Datenbank wie MySQL, MariaDB oder SQL Server im Einsatz hat, kommt in Versuchung, diese Datenbank auch für Zeitreihendaten, also die Zuordnung von Messwerten zu Datum und Uhrzeit, einzusetzen. Dieses Vorgehen kann man bei einer MySQL-Datenbank einmal durchdenken. Es genügt eine Tabelle mit drei Spalten: Name des Messwerts, gemessener Wert, Zeitstempel. Das Speichern klappt mit INSERT INTO noch problemlos.

Probleme gibt es aber bei der Auswertung großer Datenmengen. Angenommen, 10 Temperatursensoren melden alle 30 Sekunden einen Messwert an die Datenbank. Das ergibt 28.800 Messwerte am Tag und mehr als 10 Millionen im Jahr. Bei der Auswertung stellt man aber schnell fest, dass die einzelnen Messwerte für sich wertlos sind – interessant ist nicht die Information, dass die Temperatur am 5. Juni 2018 um 12:34:56 genau 25,1 Grad betrug. Stattdessen sucht man nach aggregierten Daten, also zusammenfassenden Werten für bestimmte Zeitabschnitte, zum Beispiel Höchst- und Niedrigstwerte pro Tag oder Durchschnittswerte pro Stunde.