Auf dem Markt existiert eine Vielzahl von Datenbankensystemen mit speziellen Architekturen für unterschiedliche Aufgaben. Einige Datenbanksysteme sind spezialisiert auf die Speicherung und Verwaltung von zeitbezogenen Daten. Sie zeichnen sich im Allgemeinen dadurch aus, dass Zeitstempel als primäre Schlüssel der Datentabellen verwendet werden.
Iba hat im Rahmen eines internen Projekts einen Vergleich zwischen IbaHD-Server und den zwei zeitbasierten Datenbanksystemen InfluxDB und TimescaleDB durchgeführt. Die beiden Systeme sind bekannte Stellvertreter der Zeitreihendatenbanken. Die Zielsetzung war ein transparenter Vergleich der vorhandenen Features und der Performance. Die Ergebnisse und insbesondere die wesentlichen Unterschiede zwischen den Systemen werden hier dargestellt.
Benchmarks unterliegen immer bestimmten Randbedingungen und sind deswegen schwer miteinander zu vergleichen. Vor allem, wenn sich die verglichenen Systeme in ihrem idealen Anwendungsszenario unterscheiden. Um einen objektiven Benchmark durchzuführen, müssen diese Szenarien mit in Betracht gezogen werden. Im Folgenden ist die Zusammenfassung der Ergebnisse des Benchmarks dargestellt.
Vergleich IbaHD-Server mit InfluxDB und TimescaleDB
Den drei Datenbanksystemen liegen verschiedene technische Ansätze zugrunde. InfluxDB ist eine schemafreie Zeitreihendatenbank, d. h. es muss im Vorfeld kein Tabellenschema angelegt werden. Stattdessen gruppiert InfluxDB die Datensätze anhand von Tags ein, die dem Datensatz hinzugefügt werden können. Mehrere Datensätze, die exakt die gleiche Kombination an Tags haben, gehören zu einer Zeitreihe.
Dieser Ansatz wird auch als Tagset-Modell bezeichnet. Die Daten werden mit dem Line Protocol als Plain-Text-Format an InfluxDB gesendet. Im Gegensatz dazu verfolgt TimescaleDB ein Hybridkonzept aus relationalen und zeitbasierten Datenbanken. Es kann als Erweiterung zu PostgreSQL installiert werden. Die Zeitreihen sind in TimescaleDB äußerlich fast nicht von normalen relationalen Tabellen zu unterscheiden. Im Grunde handelt es sich dabei um abstrakte Hypertabellen, die Zeitreihen als sogenannte Chunks speichern. Mit TimescaleDB können relationale und Zeitreihendaten miteinander kombiniert werden.
Mit IbaHD-Server wird eine andere Strategie verfolgt, mit der Messdaten vergleichsweise deutlich schneller und effizienter gespeichert werden können. Die Effizienz wird durch eine schnelle und verlustfreie Encodierung erreicht. Insbesondere bei der hochfrequenten Datenerfassung hat die Speichereffizienz höchste Priorität. IbaHD-Server bietet eine nahtlose Integration von Iba-Daten in das Iba-System und ist nicht auf leistungsstarke Hardware angewiesen.
Ausrichtung
Die Intention von TimescaleDB und InfluxDB unterscheiden sich von der des IbaHD-Servers. Ein wesentlicher Bestandteil der zwei Systeme ist die Retention Policy, die im weitesten Sinne eine Aufräumstrategie darstellt. Es kann beispielsweise festgelegt werden, dass veraltete Daten gelöscht werden oder ein Downsampling erfolgt. Ein Argument von TimescaleDB hierfür ist, dass die Relevanz von älteren Daten mit der Zeit abnimmt, weil diese nicht mehr aktualisiert werden.
Mit dem Downsampling geht allerdings auch der Informationsgehalt im Detail verloren. IbaHD-Server verfolgt in dieser Hinsicht eine andere Strategie. Um Messdaten auch für Dokumentations- und Analysezwecke in originaler Auflösung zu halten, werden die Messdaten sofort und verlustfrei komprimiert.
Eine Limitierung des verwendeten Speicherplatzes ist dennoch konfigurierbar. Die Aggregation erfolgt zusätzlich, sodass bei Bedarf auch Langzeitanalysen ausgeführt werden können, die nicht die Originalauflösung benötigen. Auf diese Weise kann schnell ein Überblick über die aufgezeichneten Daten gewonnen werden. Für die Detailanalyse können dann die Rohdaten herangezogen werden.
Performance
Ein wichtiger Bestandteil des Benchmarks war neben den Features die Untersuchung der Schreib- und Leseperformance. Für diesen Zweck wurden auf einem dedizierten Computer Daten generiert, die hinsichtlich ihrer Struktur, ihrer Frequenz und ihres Mengengerüsts typischen messtechnischen Anwendungsszenarien entsprechen.
Die Datenbanksysteme wurden mithilfe einer eigens entwickelten Software getestet. Die Testsoftware generiert Datensätze, die an einen Client übergeben werden. Dieser Client formatiert die Daten und bereitet sie für die Schnittstelle der Datenbank vor. Anschließend werden die Datensätze eingefügt. Auf diese Weise werden gleiche Ausgangsbedingungen geschaffen.
Im Vorfeld wurden alle drei Systeme optimal konfiguriert. Als Vergleichsmetrik für die Leseund Schreibgeschwindigkeit wurde die Einheit metrics per second gewählt. Die Struktur einer solchen Metrik ist an typische Messdaten angelehnt, das heißt sie besteht aus einem Zeitstempel, einem Signalnamen und einer Gleitkommazahl, die den Messwert symbolisiert.
In der gemessenen Zeit sind bei allen drei Systemen ebenfalls die nötigen Konvertierungen für die Schnittstelle der jeweiligen Systeme enthalten. Bei IbaHD-Server ist dies beispielsweise die Enkodierung, bei TimescaleDB das Einfügen in SQL-Befehle und bei InfluxDB die Formatierung in das Line Protocol.
Sowohl in der Schreib- als auch in der Lesegeschwindigkeit übertrifft IbaHD-Server die anderen beiden Zeitreihendatenbanken bei weitem. Während bei IbaHD-Server die Daten laufend kodiert werden können, wird bei InfluxDB und bei TimescaleDB die Performance durch die Schnittstelle und die internen Datenbankmechanismen reduziert. Die folgenden Ergebnisse sind Mittelwerte mehrerer Testreihen.
Die Durchführung von vergleichbaren Benchmarks ist ein aufwändiges Verfahren, das vielen Einflussparametern unterliegt. Um Fehler und Irrtümer auszuschließen, wurden die Ergebnisse mit anderen Benchmarks und Veröffentlichungen validiert. In diesen Vergleichsquellen wurden ähnliche Kennzahlen für InfluxDB und TimescaleDB ermittelt.
Zukünftige Entwicklungen
Skalierbarkeit
IbaHD-Server ist geeignet für viele Daten der gleichen Struktur. In der Messtechnik ist es üblich, analoge und digitale Signale in einer Baumstruktur mit Modulen zu gliedern. Die Zuordnung zwischen den Signalen der Eingangsquellen muss einmalig vor dem laufenden Betrieb der Software durchgeführt werden und wird als Konfiguration gespeichert.
Eine hohe Varianz der Datenstruktur, zum Beispiel durch sich wechselnde Signalkonfigurationen, reduziert die Leistungsfähigkeit stark. Auch Lösungen, in der eine Vielzahl von Clients simultan Daten an IbaHD-Server zur Abspeicherung senden, stellt für die Infrastruktur eine große Herausforderung dar. In Zukunft wird Iba ebenfalls ein skalierbares Konzept, zum Beispie für IoT-Anwendungen, bieten.
Verfügbarkeit
Mit einem skalierbaren IbaHD-Server-System als cluster- oder cloudfähigem Dienst kann auch die Verfügbarkeit der Messdaten gesteigert werden. Fällt beispielsweise ein Datenknoten aus, können andere Instanzen die angefragten Daten zurückliefern. Diese Fähigkeit wird durch Replikation erreicht. Neben der Redundanz kann mit einem solchen System auch die Auslastung durch Lese- und Schreibzugriffe zwischen den Knoten verteilt werden.
Performance-Verbesserungen
IbaHD-Server erreicht bereits hohe Datengeschwindigkeiten auf einfachen Desktopcomputern und arbeitet aufgrund der laufenden Encodierung sehr effizient. Dennoch verbessert Iba die Systeme kontinuierlich.
Eine detaillierte Auswertung finden Sie hier.