Bits and Splits - stock.adobe.co

InfluxDB 2: Open-Source-Datenbank für Zeitreihen und IoT

InfluxDB 2 ist eine Open-Source-Datenbank, die speziell für Zeitreihen entwickelt wurde. Die Datenbank eignet sich damit unter anderem für IoT-Anwendungen.

InfluxDB ist eine Zeitreihendatenbank, die mit Go entwickelt wurde. Die Datenbank ist skalierbar und bietet starke Vorteile beim Speichern von gestreamten Daten. Neben Zeitreihendaten ist die Datenbank auch auf Überwachungsdaten von Servern und Sensordaten aus dem Internet der Dinge spezialisiert.

Um Zeitreihendaten zu speichern, zum Beispiel Messdaten von Sensoren, sind Datenbanken notwendig, die schnell und effektiv unstrukturierte Daten speichern. InfluxDB ist vor allem auf die Speicherung von Echtzeitdaten und parallel eingehenden Daten, zum Beispiel von Sensoren, Servern oder IoT-Geräten (Internet of Things, Internet der Dinge) optimiert.

Da Zeitreihendatenbanken große Datenmengen in kurzer Zeit aufnehmen, sind die Datenbanken dafür ausgelegt, Daten zu komprimieren und nicht mehr benötigte Dateien zu löschen. Hierfür lassen sich in InfluxDB Richtlinien definieren.

Auf diese Weise kann man festlegen, wo InfluxDB Daten speichert. Besonders häufig verwendete Daten speichert die Open-Source-Datenbank entweder im Arbeitsspeicher oder auf einem schnellen Datenträger. Archivdaten und nicht mehr benötigte Daten legt das System auf langsameren Datenträgern ab.

Relationale Datenbanken versus Zeitreihendatenbanken

Relationale Datenbanken sind vor allem für strukturierte Daten optimiert, deren Bearbeitung nach dem Speichern erfolgt. Die Tabellen in diesen Datenbanken können komplex sein und bestehen häufig aus zahlreichen Spalten.

Bei Zeitreihendatenbanken wie InfluxDB besteht der Vorteil darin, dass diese für unstrukturierte Daten optimiert sind. Das nachträgliche Bearbeiten von Zeitreihendaten ist eher selten notwendig, da es sich meistens um Überwachungsdaten aus Server- oder Netzwerkinfrastrukturen oder Informationen von Sensoren in Internet-of-Things-Infrastrukturen handelt. Aus diesem Grund bestehen die Datenbanken oft nur aus wenigen Spalten.

Die Entwickler vom InfluxDB bieten die Datenbank zur Installation im lokalen Rechenzentrum an, aber auch zum Betrieb in der Cloud. Hier arbeitet Influxdata mit Microsoft Azure, Amazon Web Services (AWS) und Google Cloud Platform (GCP) zusammen.

Einstieg in InfluxDB Cloud

InfluxDB Cloud lässt sich kostenlos einsetzen, zum Beispiel für Test- oder Entwicklungsumgebungen und kleinere, produktive Szenarien. Der Einstieg in InfluxDB gelingt am besten über einen Test von InfluxDB Cloud. Dazu muss bei Influxdata ein Konto erstellt werden. Danach kann man auswählen, wo die Datenbank bereitgestellt werden soll.

Abbildung 1: InfluxDB kann in der Cloud kostenlos getestet werden.
Abbildung 1: InfluxDB kann in der Cloud kostenlos getestet werden.

Hier stehen Azure, AWS und GCP zur Auswahl. Für den Betrieb von InfluxDB Cloud ist kein zuvor eröffnetes Konto bei den drei Cloud-Anbietern notwendig. Es reicht aus, wenn das Konto bei InfluxDB eingerichtet wird. Anschließend kann man auf das Dashboard von InfluxDB Cloud zugreifen.

Die Daten lassen sich in InfluxDB mit dem Dashboard verwalten. Hierfür steht die Abfragesprache Flux zur Verfügung. Die Syntax der Sprache orientiert sich an Programmiersprachen und bietet für die Zeitreihendaten mehr Möglichkeiten als einfache Abfragesprachen.

Ältere Versionen von InfluxDB unterstützen außerdem die Abfragesprache InfluxQL. Diese ist in Version 2 durch Flux ersetzt worden. Darüber hinaus bietet InfluxDB Schnittstellen für verschiedene Programmiersprachen, darunter Node.js, PHP, Ruby, Swift, Scala, C#, Go und Java.

Abbildung 2: In der Weboberfläche von InfluxDB Cloud lassen sich die Daten und die Datenbank verwalten.
Abbildung 2: In der Weboberfläche von InfluxDB Cloud lassen sich die Daten und die Datenbank verwalten.

Kostenpflichtige Angebote von InfluxDB

Die Free-Variante von InfluxDB Cloud bietet allerdings nur eingeschränkte Funktionen zum Lesen und Schreiben von Daten. Die jeweiligen Einschränkungen und Unterschiede der einzelnen Editionen werden beim Erstellen des Kontos angezeigt.

Wer auf Dauer produktiv mit InfluxDB arbeiten möchte, kann sich die kostenlose Enterprise-Version lizenzieren. Auch hier gibt es Angebote bei Azure, AWS und GCP. Der Betrieb im lokalen Rechenzentrum ist ebenfalls vorgesehen. Die Preise für InfluxDB sind auf der Webseite des Anbieters zu finden.

InfluxDB kann darüber hinaus in einer Container-Infrastruktur betrieben werden. Dazu stellen die Entwickler ein Docker-Image zur Verfügung. Über diesen Weg kann InfluxDB ebenso in ein Service-Mesh integriert werden, zum Beispiel zusammen mit Istio.

Alternativen zu InfluxDB – Prometheus, QuestDB, TimeScaleDB, Graphite und Co.

Zeitreihendatenbanken werden nicht nur in IoT-Netzwerken eingesetzt, sondern auch für die Überwachung von Servern und Netzwerkgeräten. In diesem Bereich wird häufig auf Prometheus gesetzt, aber auch InfluxDB ist hierfür geeignet. In Service-Meshes wird oft Istio eingesetzt. Istio installiert Prometheus als Datenbank, kann generell aber auch an InfluxDB angebunden werden, wenn die Datenbank im Netzwerk bereits im Einsatz ist.

Bei der Visualisierung setzt Prometheus wiederum auf Grafana. Das ist beim Einsatz von InfluxDB nicht notwendig. Weitere Alternativen in diesem Bereich sind OpenTSDB, TimescaleDB, Graphite, QuestDB oder AWS Timestream.

Erfahren Sie mehr über Datenbanken