Business Application Research Center

Experten für Business Intelligence, Analytics, Big Data, CRM und ECM

BARC-Newsletter

Neue Lösungen für die effiziente Verarbeitung von Zeitreihen

RssRss

26.02.2020

Neue Lösungen für die effiziente Verarbeitung von Zeitreihen

Zeitreihen sind omnipräsent in allen Branchen und Dienstleistungen, insbesondere bei IoT- oder industriellen Telemetrie-Anwendungen. Sie bestehen aus einer kontinuierlichen Abfolge von Werten, wie Börsenkurse, Wetterdaten oder Vitalwerte in Notfallstationen. In der Energiebranche sind Zeitreihen das zentrale Element für eine effiziente Betriebssteuerung und Fakturierung.

Trotz der Häufigkeit von Zeitreihen gab es in der Vergangenheit keine effizienten Lösungen. Dies hat sich durch einen neuen Typ von NoSQL-Datenbanken geändert: den Timeseries-DB’s verschiedener Cloudanbieter.

Doch was sind eigentlich die Besonderheiten und Herausforderungen von Zeitreihen? Sie können unterteilt werden in Eigenheiten beim Erfassen (Capture), Speichern (Store) und Analysieren (Analyze and Visualize). In den folgenden Abschnitten lernen Sie mehr über diese drei Aspekte.

Herausforderungen beim Schreiben von Daten

Messreihendaten werden üblicherweise als Datenfolge angeliefert und direkt gespeichert. Das heißt, sie werden nur an die bestehende Datensammlung angefügt und es gibt keine Mutationen (reine Insert).

In einigen Szenarios liefern viele Messpunkte in kurzen Zeitintervallen eine Unmenge von Daten (Sekunden oder noch kürzer). Dadurch ist eine hohe Performance beim Schreiben der Daten notwendig.

Manchmal müssen die Daten gleichzeitig für Analysen bereitgestellt werden. Das bedeutet, dass eine möglichst kurze Latenzzeit gefordert wird, in einzelnen Fällen bis zu Stream-Analytics. Somit ist hochperformante Speicherung notwendig.

Herausforderungen bei der Analyse

Selten werden Zeitreihen genau in dieser Detaillierung verwendet. Daher sind Aggregationen und verschiedene Berechnungen zentrale Elemente. Wichtige funktionale Eigenschaften betreffen die Analyse und Visualisierung von Zeitreihen, die in folgende Analyseformen unterschieden werden können:

Aggregationen

Zeitreihen werden häufig in größeren zeitlichen Intervallen dargestellt, als sie ursprünglich gemessen wurden. Deshalb sind Aggregationsfunktionen eine Grundanforderungen an Zeitreihen. Je nach Zeitreihe werden Summierungen oder Durchschnittswerte benötigt.

Dazu zwei Beispiele aus dem Energiemarkt: Erstens wird der gemessene Energieverbrauch in Kilowattstunden (kWh) summiert, um verrechnet werden zu können. Zweitens wird die erbrachte Leistung in Kilowatt (kW) gemessen und ein Durchschnittswert berechnet.

Glättungen und Trends

Einzelne Messwerte weisen teilweise recht große Unterschiede auf. Infolge dieses hohen Schwankens, auch als Rauschen bezeichnet, ist häufig nicht mehr die eigentliche Entwicklung innerhalb der Zeitreihe ersichtlich. Dazu sind verschiedene Berechnungsverfahren notwendig, wie die Berechnung eines gleitenden Durchschnittswertes, der zu einer Glättung des Verlaufs führt.

Erst dadurch lassen sich Trends erkennen und daraus Prognosen ableiten (Predictive Analytics), wobei verschiedene Formen der Darstellung und Analyse unterschieden werden. Die einfache lineare Darstellung ist nur eine Form davon. Für saisonale Schwankungen wird üblicherweise die Funktion der Arima Analyse verwendet. Im Weiteren gibt es noch unzählige weitere Formen zur Trendanalyse.

Zeitreihenübergreifende Berechnungen

In einigen Fällen sind auch Zeitreihen-übergreifende Analysen notwendig. Auch dazu zwei Beispiele: Im ersten Fall wird die Gesamtmenge der produzierten Energie aus den Zeitreihen der verschiedenen Kraftwerke berechnet. Hierzu werden mehrere Zeitreihen summiert. Im zweiten Fall geht es um eine ausgeglichene Energiebilanz, dazu müssen Produktion und Verbrauch ausgeglichen sein. Hier werden Zeitreihen subtrahiert.

Alerter

Für Monitoring-Aufgaben ist es notwendig, Meldungen zu generieren, wenn gewisse Schwellwerte überschritten werden. Um ein rechtzeitiges Eingreifen zu ermöglichen, ist eine Echtzeitanalyse von Zeitreihen mit der Möglichkeit, Aktionen auslösen zu können, notwendig. Dies können einfache Benachrichtigungen sein, wie SMS an ein Support-Team, oder das Anstoßen automatisierter Prozesse.

Herausforderungen bei der Datenspeicherung

Zeitreihen bestehen üblicherweise nur aus wenigen Attributen. Zentral sind diese vier Attribute:

  • Zeitreihentyp
  • Zeitpunkt des Messwertes (eng. timestamp)
  • Messwert
  • Einheit wie z. B. kWh, kW, EUR, Temperatur, etc.

Die Regeln zu den Zeitreihen wurden in der Vergangenheit üblicherweise applikatorisch abgebildet. Das heißt, welche Form der Aggregation, der Trendberechnung und weiteren Funktionen ein Teil von zusätzlichen Programmen war.

Die Speicherung erfolgte meistens in traditionellen relationalen Datenbanken, was ineffizient war. Zeilenorientierte Datenbanken sind üblicherweise zu langsam für die schnelle Speicherung der Daten. Dies ist aufgrund der Ausrichtung auf die Abbildung von Daten in mehreren Tabellen und der Beziehungen (Relationen) und die nicht benötigten Möglichkeiten von updates oder deletes.

Da es sich um strukturierte Daten handelt, scheint die Speicherung in spaltenorientierten Datenbanken eine Alternative zu sein. Dies ist jedoch ein trügerischer Entscheid. Spaltenorientierte Datenbanken sind darauf ausgelegt, wenige Spalten effizient auszuwerten, mit der Ergänzung weiterer Hilfswerte (Lookups). Bei Zeitreihen-Analysen werden jedoch alle Spalten benötigt und es gibt – wenn überhaupt – nur vereinzelte Lookups.

Drei Zeitreihendatenbanken kurz vorgestellt

Seit wenigen Jahren sind nun neue Typen von cloudbasierten NoSQL-Datenbanken auf dem Markt, die auf die effiziente Speicherung und Analyse von Zeitreihen ausgerichtet sind.

  • Microsoft Azure – Time Series Insights
    Dies ist die älteste der Zeitreihendatenbanken, obwohl erst seit November 2017 verfügbar. Der Schwerpunkt liegt auf der Analyse und der Visualisierung von Zeitreihen. Für die effiziente Datenintegration setzt Microsoft auf ihre Lösung des Azure IoT Hub. Microsoft hat für die Analyse eine eigene Abfragesprache entwickelt, die sich in andere Codes integrieren lässt.
  • Amazon Timestream
    Nicht viel neuer ist die Lösung von Amazon, die erst seit 2018 verfügbar ist. Es handelt sich um einen sogenannten serverlosen Service (serverless). Das bedeutet, dass die Lösung als nutzungsbasierter Cloud-Service zur Verfügung steht, in der jeweils aktuellen Version. Das Applikationsmanagement und Release-Management erfolgen durch den Cloud-Dienstleister. Die Datenbank bietet verschiedene Analysefunktionen, insbesondere für Glättungen und Trend-Analysen.
  • Alibaba – Time Series Database (TSDB)
    Die chinesische Cloudlösung wurde ebenfalls 2018 angekündigt und befindet sich seither im Betastatus. Funktional scheint sie vergleichbar mit den Mitbewerbern Amazon und Microsoft.


Was auffällt ist, dass der vierte große Cloud-Player Google noch keine dezidierte Zeitreihen-Datenbank anbietet. Google setzt hier auf seine NoSQL-Lösungen Firestore und Firebase sowie teilweise auf Bigtable und Cloud memory store. In diesen Lösungen fehlen jedoch Möglichkeiten der Zeitreihenanalyse.

Für on-premise gibt es noch keine dezidierten Datenbanken. Branchenspezifische Lösungen wie die Applikation Siloveda für Energie-Dienstleister, Wasserwerke oder Kehrichtverbrennungen sind vorhanden. Das Zeitreihen-Management erfolgt in der Applikation. Im Kern werden die Daten in einer MS SQL-Datenbank gespeichert, was zu Kritik an der Performance führt.

TimescaleDB ist eine weitere kommerzielle Lösung. Auch hier handelt es sich um eine Applikation. Im Kern wird eine PostgreSQL Datenbank verwendet.

Summary

Im Rahmen von Digitalisierungs-Initiativen befassen sich viele Unternehmen mit der Speicherung und Analyse von Zeitreihen. Dabei wird häufig über den Aufbau eines Data Lakes nachgedacht, meistens in Form einer schemafreien Speicherung in einem verteilten Filesystem (Hadoop HDFS, Amazon S2) oder einem Blobstore (Amazone S3, Microsoft Blobstore). In den meisten Fällen ist jedoch eine differenziertere Data-Lake-Betrachtung sinnvoller, was üblicherweise zu mehreren unterschiedlichen Speicherformen führt. Das bedeutet, dass eine Timeseries-Datenbank eine schemafreie Speicherung ergänzt.

Timeseries-Databases sind ein relativ junger Typ von NoSQL-Datenbanken, die trotzdem schon eine erstaunliche Reife und einige Referenzkunden ausweisen. Wir empfehlen, diese unbedingt bei der Weiterentwicklung der Architektur zu betrachten, insbesondere bei der Verarbeitung von großen Mengen von IoT- und Telemetrie-Daten.