Zeitreihendatenbank
# Zeitreihendatenbank

Eine Zeitreihendatenbank (englisch time series database, TSDB) ist eine Datenbank, die für das Speichern und die Analyse von Zeitreihen wie Sensordaten oder Aktienkursen optimiert ist. Anwendungsdomänen sind zum Beispiel das Internet der Dinge, der Kapitalmarkt, das Monitoring von IT-Systemen oder die Forschung auf physiologischen Signalen.

## Eigenschaften

Ein Datensatz einer Zeitreihendatenbank besteht aus
* einem Zeitstempel,
* dem zugehörigen Wert (z. B. gemessene Temperatur in °C) sowie
* optional Metadaten (oft in Form von „Tags“).
Je nach Datenbank kann ein Datensatz gegebenenfalls auch mehrere Werte (multivariate Zeitreihe) oder weitere Zeitstempel enthalten (z. B. Messzeitpunkt und Auswertungszeitpunkt).
Zeitreihendatenbanken sind häufig spaltenorientierte NoSQL-Datenbanken (oder basieren auf solchen), da diese Anforderungen der Zeitreihenanalyse effizienter als klassische relationale Datenbanken mit Fokus auf ACID erfüllen können.
Weitere typische Kennzeichen von Zeitreihendatenbanken sind:
* Standardmäßige Indizierung über Zeitstempel
* Keine oder schwache Konsistenzgarantien (vgl. auch CAP-Theorem), stattdessen
** Skalierbarkeit auf sehr große Datenmengen (z. B. mehrere 100.000 Messwerte pro Sekunde, mehrere Terabyte Daten/Tag)
** Schnelles Erzeugen von Datensätzen (engl. ingestion rate; Zeitreihendaten werden nie oder nur sehr selten aktualisiert)
* Zeitbezogene Abfragen sind bereits eingebaut oder einfach zu formulieren und werden mit hoher Geschwindigkeit ausgeführt, die Einrichtung kontinuierlicher Abfragen ist möglich (z. B. Mittelwert über die vergangene Stunde)
* Ältere Daten können automatisch gelöscht oder reduziert werden (Downsampling, Aggregation, Kompression)

## Beispiele für Zeitreihendatenbanksysteme

Beispiele für Zeitreihendatenbanksysteme sind:
* Apache Druid
* CrateDB
* Graphite Whisper
* InfluxDB
* kdb+
* OpenTSDB
* Prometheus
* QuestDB
* RRDtool
* TimescaleDB