Software-Entwicklung: Datenbank-Anwendung für die Speicherung und Abfrage von komprimierten Zeitreihen

Motivation:

Zeitreihen werden in großem Umfang in vielen Lebensbereichen erhoben. Als Beispiel kann man das zukünftige Energiesystem nennen, in dem bald in jedem Haushalt ein intelligenter Stromzähler installiert wird. Dieser wird den aktuellen Energieverbrauch des Haushaltes öfter als zuvor erfassen und weiterleiten können, z. B. einmal pro Sekunde. Die daraus resultierende Menge an Daten erfordert entsprechende Rechenleistung für die Analyse und Speicherplatz.

Eine Lösung, um die Datenmenge zu reduzieren, ist Komprimierung, beispielsweise durch eine stückweise Approximation mit mathematischen Funktionen. Jüngste Forschung hat diverse Methoden entwickelt, basierend auf unterschiedlichen mathematischen Funktionen. Allerdings wurde die Frage, wie man derart komprimierte Daten in einer Datenbank am schnellsten bearbeitet oder abfragt, bisher nicht wirklich beantwortet. Die Nützlichkeit der Komprimierungstechniken ergibt sich jedoch genau an dieser Stelle.

Aufgabenbeschreibung:

Ziel des Projektes ist die Erstellung einer prototypischen Datenbank-Anwendung für die Speicherung und Abfrage von Zeitreihen, die durch stückweise Approximation mit mathematischen Funktionen komprimiert wurden. Als erster Schritt soll die Implementierung von SELECT-PROJECT-JOIN Funktionalität in zwei unterschiedlichen Versionen erfolgen. Die erste soll die Daten zuerst dekomprimieren und die Anfragen auf die dekomprimierten Daten ausführen. Die zweite Version soll es versuchen, Anfragen auszuführen, so weit wie möglich ohne die Daten zu dekomprimieren. Es genügt, WHERE-Klauseln mit einfachen Bedingungen (<, >, =) zu betrachten. In einem nächsten Schritt können ebenso in zwei Versionen Aggregationsanfragen implementiert werden, bei denen z. B. die Summe oder Ordnungsstatistiken (z. B. Minimum, Maximum) eines Teils der Zeitreihe betrachtet werden. Implementierungen der Approximationsalgorithmen, sowie entsprechende Test-Datensätze, sind vorhanden.