TimescaleDB vs. influxDB – Experten für Zeitreihen in Zeiten von IIoT

Eine technologische Fragestellung im Rahmen des Forschungsprojekts KOSMoS stellt die Wahl einer geeigneten Zeitreihen-Datenbank dar, die es erlaubt, hochfrequente Maschinendaten effizient zu speichern und für analytische Zwecke einfach verfügbar zu machen, dar. Michael Schneider von inovex diskutiert unsere Erfahrungen mit den zwei populären Open-Source-Zeitreihen-Datenbanken TimescaleDB und InfluxDB.

tl;dr

Flexibilität

  • Für das einfache Ablegen von (zeitabhängigen) Messreihen ist die InfluxDB eine einfache Möglichkeit, ohne hohen Aufwand für ein relationales Design.
  • Fallen aber neben den einfachen Messreihen komplexere Daten und Metainformationen an, sollte für eine bessere Strukturierung zu einer Lösung wie der TimescaleDB gegriffen werden.

Abfragesprachen

  • InfluxDB bietet hier durch die Abfragesprache Flux ein mächtiges Werkzeug für Abfragen.  Jedoch ist der mögliche Mehraufwand für das Lernen der Sprache zu berücksichtigen.
  • Anders bei der TimescaleDB. Diese kommt mit der klassischen Sprache SQL, welche vielen Entwicklern und Data Scientist bekannt ist und dadurch einen schnellen Einstieg ermöglicht. Der Sprachumfang wird durch spezifische Funktionen für die Analyse von Zeitreihen ergänzt.

Arbeitsspeicher, Datenspeicher und Performance

  • TimescaleDB verbraucht im Vergleich zu InfluxDB weniger Arbeitsspeicher. Hierdurch ist auch ein Einsatz auf schwächeren Geräten (Edge-Devices, Embedded Systems, …) möglich.
  • TimescaleDB verbraucht gegenüber InfluxDB in den Test im Durchschnitt 57% mehr Datenspeicher.
  • InfluxDB und TimescaleDB unterscheiden sich zeitlich bei der Durchführung von Abfragen nicht merklich.

Die gesamte Evaluation findet ihr unter https://www.inovex.de/blog/timescaledb-vs-influxdb-zeitreihen-iiot/.