Storage-Praxis: Große Datenmengen und Messdaten von Sensoren erfassen und speichern Datenbankmanagementsystem als Open Source: InfluxDB 2 im Einsatz

Autor / Redakteur: Thomas Joos / Dr. Jürgen Ehneß

Fallen in kurzer Zeit große Datenmengen an, ist eine Datenbank notwendig, die damit umgehen kann und gleichzeitig eine hohe Leistung bietet. InfluxDB ist ein Datenbanksystem, das genau für dieses Einsatzgebiet optimiert worden ist.

Firma zum Thema

Zeiten spielen in der Zeitreihendatenbank InfluxDB erwartungsgemäß eine wichtige Rolle.
Zeiten spielen in der Zeitreihendatenbank InfluxDB erwartungsgemäß eine wichtige Rolle.
(Bild: gemeinfrei / Pixabay )

Die Open-Source-Datenbank InfluxDB ist eine für Zeitreihendaten optimierte Datenbank und kann im lokalen Rechenzentrum oder als Cloud-Lösung in Microsoft Azure, Amazon Web Services (AWS) und Google Cloud Computing genutzt werden. Die Time-Series-Database (TSDB) kann Serverless in der Cloud oder mit eigenen Servern im Rechenzentrum betrieben werden. Entwickelt wird die Datenbank vom US-amerikanischen Unternehmen Influxdata.

Die schemalose Datenbank arbeitet vor allem mit Tags, um Daten zu kennzeichnen, zum Beispiel in der Form von Sensor1, Sensor2. „Field Values“ stellen wiederum die Daten dar, die InfluxDB speichert. Dabei handelt es sich um die Werte, welche die Sensoren übermitteln. Der „Timestamp“ gibt den Zeitpunkt der Messung an. Im Vorfeld müssen keine Datentypen definiert werden, um sie in InfluxDB zu speichern.

Für die InfluxDB Cloud stellt der Hersteller Influxdata auch eine kostenlose Version zur Verfügung. Die Abfrage und Verwaltung der Daten kann über die grafische Oberfläche oder über die interne Abfragesprache Flux erfolgen.

Wer produktiv auf InfluxDB setzt, kommt auf Dauer natürlich um einen Wartungsvertrag mit dem Hersteller kaum herum. Dafür gibt es unter anderem auch die kommerziellen Versionen von InfluxDB. Im lokalen Rechenzentrum kann dazu InfluxDB Enterprise eingesetzt werden.

InfluxDB-Funktionen und -Einsatzgebiete

InfluxDB hat seine Schwerpunkte im Speichern großer Datenmengen im wissenschaftlichen Bereich und Daten, die von Sensoren versendet werden. InfluxDB ist wesentlich schneller als herkömmliche Datenbanken, wenn es darum geht, Zeitreihen zu speichern und zu verwalten. Auch die Verarbeitung in Echtzeit ist möglich, genauso wie die Abfrage der Daten mit der internen und an Javascript angelehnten Abfragesprache Flux. Diese ähnelt eher einer Programmiersprache als einer SQL-Abfragesprache.

Wenn in Datenbanken Zeitreihen gespeichert werden sollen, zum Beispiel auch beim Einsatz von Internet-of-Things-Infrastrukturen, kann InfluxDB dazu genutzt werden, Informationen von Sensoren inklusive Zeitstempel zu speichern. Da Zeiten in InfluxDB eine wichtige Rolle spielen, achtet ein interner Zeitdienst darauf, dass alle Knoten im InfluxDB-Cluster synchron laufen. Natürlich ist InfluxDB auch dazu geeignet, Überwachungsdaten in Unternehmensnetzwerken zu speichern.

Bildergalerie
Bildergalerie mit 6 Bildern

Datenbanken in InfluxDB müssen nicht kompliziert sein und Dutzende Spalten zur Verfügung stellen. Der Einsatz ist bereits bei wenigen Spalten sinnvoll, wenn zum Beispiel bestimmte Messwerte eines Sensors zeitabhängig gespeichert werden sollen.

Storage-Management Teil 1 – Immer den Überblick behalten

Um einen umfassenden Überblick bieten zu können, behandelt dieses eBook unter anderem die folgenden Themen:
# Was ist Storage-Management?
# Nahe Verwandte des Speichermanagements
# Der Status quo der Storage-Systeme

eBook „Storage-Management“ downloaden

Zeitreihendatenbanken: Vorteile und Einsatzgebiete

Wenn Daten von vielen Quellen parallel eingehen und verarbeitet werden müssen, zum Beispiel bei Sensoren, ist es notwendig, dass die dazugehörige Datenbank diese parallelen Abfragen schnell erledigen kann. Da die Daten häufig in Echtzeit eingehen, muss die Schreibleistung der Datenbank dafür ausgelegt sein. Dazu kommt die Herausforderung, dass Messdaten von Sensoren nicht immer genau typisiert und definiert sind. Zeitreihendatenbanken können diese Daten dennoch speichern und verfügbar machen.

Außerdem müssen einmal gespeicherte Daten einer Zeitreihe eher selten nachträglich aktualisiert werden. Eine Zeitreihendatenbank muss daher nicht dafür optimiert sein. Dazu kommen notwendige Funktionen zum Löschen oder Komprimieren von veralteten Daten, die nicht mehr benötigt werden. Auch diese Aufgaben gehören zur schnellen Verarbeitung von Zeitreihendaten.

InfluxDB verstehen und in der Cloud oder als Container betreiben

InfluxDB besteht aus nur wenigen Komponenten, die für Linux und macOS zur Verfügung stehen. Alle Funktionen sind in einer Datei enthalten und sind dabei leichter zu installieren und zu betreiben.

Auch der Betrieb als Docker-Container ist möglich. Der Download aus dem Docker-Hub erfolgt mit „docker pull influxdb“. Der Download geschieht aber auch automatisch, wenn der Container in Linux gestartet wird:

docker run -p 8086:8086 \ -v influxdb:/var/lib/influxdb \ Influxdb

Für eine eingeschränkte Nutzung der kostenlosen Version kann bei den Entwicklern ein kostenloser InfluxDB-Cloud-Account erstellt werden. Nach der Anmeldung ist es möglich, direkt über die InfluxDB-Cloud-Seite eine Ressource in AWS, Azure oder GCP zu erstellen. An dieser Stelle steht auch die kostenlose Version zur Verfügung, die natürlich etwas eingeschränkt ist. So werden zum Beispiel die Schreib- und Lesevorgänge limitiert. Die aktuellen Grenzwerte zeigt das Portal an.

Nach der Auswahl des Abo-Planes oder dem Starten der kostenlosen Version steht das Dashboard von InfluxDB zur Verfügung. Hier können Daten verarbeitet werden. Im Dashboard stellt InfluxDB aber auch Clients und Schnittstellen für verschiedene Programmiersprachen zur Verfügung. Um sich einen Überblick zu InfluxDB zu verschaffen, stellen die Entwickler kostenlose Demodaten zur Verfügung. Diese werde im Grunde genommen auf dem gleichen Weg in die Datenbank integriert wie Daten aus anderen Quellen. Im Dashboard sind bei „Data“ die verschiedenen Optionen zu finden, um Daten in die Datenbank zu integrieren. Die Demodaten stehen über „Buckets\Add Demo Data\Website Monitoring Bucket“ zur Verfügung. Der Import wird angezeigt, und anschließend können die Daten im Dashboard und mit den anderen Werkzeugen von InfluxDB verwendet werden.

InfluxDB installieren

InfluxDB kann auch auf einem Server installiert werden, zum Beispiel auf Debian/Ubuntu. Der Download der Dateien erfolgt über die Seite „Get started with InfluxDB“. Hier stehen Installationsdateien für Linux und Windows zur Verfügung. Der Download der notwendigen Dateien wird in der Dokumentation umfassend beschrieben.

Bildergalerie
Bildergalerie mit 6 Bildern

(ID:47144324)