18
.
10
.
2021

Mit Zeitreihendatenbanken zum optimierten und flexibleren Energiemanagement

Zum Inhalt

Wir kennen sie von Wetterstationen oder von der Börse: Zeitreihen – sie stellen Temperatur oder Aktienkurse in einer zeitlich geordneten Folge dar. Aber auch beim Energiemanagement werden sie verwendet. Um Zeitreihendaten im großen Stil (Big Data) verarbeiten zu können, wurden spezielle Zeitreihendatenbanken entwickelt. Unser Entwicklerteam hat drei dieser Datenbanken genauer unter die Lupe genommen und die für unseren Anwendungsfall geeignetste genutzt, um neue innovative Features zu entwickeln.

Mit Zeitreihen können Veränderungen einer bestimmten Größe sehr genau nachverfolgt werden. Durch den Einsatz intelligenter Messsysteme und IoT-Sensorik werden immer mehr Daten in höherer Auflösung erfasst und in Zeitreihenbetrachtet. Auch die neue Heizkostenverordnung (HKVO) sieht zukünftig Fernablesungen vor, wo die Daten kontinuierlich übermittelt werden. Mit den erfassten Daten können dann Korrelationen berechnet und Trends analysiert werden, die Hinweise auf Optimierungspotential liefern.  

Um die immer schneller wachsende Menge an Zeitreihendaten im Energiemanagement weiterhin effizient speichern und verarbeiten zu können, haben wir für die neue Generation unserer Energiemanagement-Software die Integration einer dedizierten Zeitreihendatenbank vorgesehen. Eine besondere Anforderung dabei ist, dass neben den klassischen Energiedaten auch immer mehr kundenspezifische oder kontextbezogene Zeitreihen hinzukommen, die die Datenbank verarbeiten muss.

Um eine für unseren Anwendungsfall geeignete Zeitreihendatenbank ausfindig zumachen, wurden geeignete Kandidaten von unserem DEV-Team in einer Vorauswahl bestimmt. Viele Zeitreihendatenbanken, wie beispielsweise OpenTSDB oder Prometheus, kamen nicht infrage, da diese nur regelmäßige Zeitreihen oder nicht für die Langzeitspeicherung gedacht sind. Die drei vielversprechendsten Kandidaten InfluxDB, TimescaleDB und Elasticsearch wurden anschließend intensiver unter die Lupe genommen. In insgesamt fünf Hauptkategorien (Schema, Speicherung, Analyse, Entwicklung und Betrieb) wurden sie qualitativ sowie quantitativ mit Hilfe von Performance-Benchmarks* bewertet.

Die drei Kandidaten im Vergleich

  • InfluxDB ist eine von Grund auf entwickelte, dedizierte Zeitreihendatenbank, die einen einfachen Einstieg bietet und laut DB-Engines.com die beliebteste Zeitreihendatenbank
  • TimescaleDB ist eine 2018 erstmals veröffentlichte Erweiterung für das relationale Datenbankmanagementsystem PostgreSQL und profitiert stark von dessen Reife und Ökosystem
  • Elasticsearch ist eine verteilte Suchmaschine, die bei uns bereits für Volltextsuche und Logmonitoring verwendet wird

Die Storage Engine von InfluxDB überzeugte mit sehr hohen Schreibraten, gefolgt von TimescaleDB und dann von Elasticsearch.

Schreibraten verschiedener Datenbanken
Schreibraten von InfluxDB, TimescaleDB und Elasticsearch im Vergleich

Da InfluxDB noch recht jung ist, sind komplexe Abfragen meist umständlich und teilweise inakzeptabel langsam. Abfragen in TimescaleDB lassen sich in SQL formulieren und die Antwortzeiten dort sind durchweg solide, während Elasticsearch besonders bei komplexen Aggregationen überzeugen konnte.

Spatial Downsampling der einzelnen Datenbanken
Spatial Downsampling (Aggregation von 1.000 Zeitreihen) im Vergleich

Neben den Schreibraten überzeugte InfluxDB auch mit den sehr hohen Kompressionsraten. TimescaleDB konnte ebenfalls bei der spaltenorientierten, komprimierten Zeitreihendatenspeicherung (TS-c) mit guten Kompressionsraten überzeugen, allerdings haben sowohl diese als auch die zeilenorientierte Speicherung (TS) noch Einschränkungen, z.B. sind noch keine Updates, sondern lediglich Inserts und Deletes möglich. Elasticsearch benötigt deutlich mehr Speicherplatz als die Konkurrenz.

Speicherplatzbedarf der einzelnen Datenbanken
Speicherplatzbedarf im Vergleich

InfluxDB liefert außerdem eine vergleichbar schlechte Unterstützung in den Bereichen Index-Management, Entwicklung und Betrieb während bei Elasticsearch die wortreiche, weniger intuitive JSON-Abfragesprache, sowie die hohen Ressourcenanforderungen negativ auffielen.

"Fast time to market" war entscheidend

Die Einführung einer Zeitreihendatenbank, mit der auch beliebige, kundenspezifische Zeitreihen gespeichert werden können, bildet einen wichtigen Meilenstein in der Weiterentwicklung unserer Produkte, da wir viel Wert darauf legen, unseren Kunden möglichst schnell neue Features anbieten zu können. InfluxDB schied aufgrund der zu großen Schwächen aus. TimescaleDB und Elasticsearch erzielten ähnlich gute Ergebnisse in der Evaluation. Letztlich haben wir uns für TimescaleDB entschieden, weil sie uns schnellere Entwicklungszyklen ermöglicht. Mit relationalen Datenbanken und SQL haben wir bei GreenPocket jahrelange Erfahrungen und die PostgreSQL-Erweiterung konnte in den Benchmarks durchweg überzeugen.

Neue Features bereits nutzbar

Die Kunden von GreenPockets Energiemanagement-Software können die neu entwickelten Features bereits nutzen. So können beliebige Zeitreihen ins Portal importiert und in der flexiblen Analyse zusammen mit den klassischen Energiedaten analysiert werden. Mit dem neuen Formeleditor lassen sich zeitreihenübergreifend beispielsweise Effizienzkennzahlen berechnen. Mehr Informationen zu den neuen Features findet man in unserem Blogbeitrag von April. Doch damit nicht genug: GreenPocket arbeitet bereits an der Entwicklung weiterer innovativer Features, die auf der Zeitreihendatenbank von TimescaleDB beruhen.

*Für die Benchmarks wurden zwei Testdatensets verwendet – einmal ETD (energy test data) mit klassischen Energiedaten und ITD (IoT test data) für Internet-of-Things-Anwendungsfälle.

GreenPocket - Autor
Author
Autor
Katrin Schrebb
marketing@greenpocket.de
* Für eine leichtere Lesbarkeit verwenden wir für Personengruppen das generische Maskulinum ("Benutzer", "Kunden" etc.). Selbstverständlich sind aber ausdrücklich alle Geschlechteridentitäten gemeint.