HAKOM PowerTSM® Documentation

Komprimierte Zeitreihen

Was ist Komprimierung

In HAKOM Terminologie ist Zeitreihen-Komprimierung eine Technology zur resourcenschonenden Speicherung von Zeitreihendaten. Komprimierte Zeitreihen benötigen nicht nur deutlich weniger Speicherplatz in der Datenbank, sondern daraus folgend auch kürzere Zugriffszeiten bei größeren Datenmengen.

Wie funktioniert Komprimierung

Zeitreihenwerte (also bei HAKOM Zeitreihen bestehend aus Wert und Flag) werden bei herkömmlichen (nicht komprimierten) Zeitreihen als Zeitstempel-Wert-Paare abgespeichert. Bei Komprimierung werden mehrere zeitlich angrenzende Zeitreihenwerte zu einem fixen Block mit nur einem Anfangszeitstempel zusammengefasst und als Binärwert abgespeichert. Durch das Entfallen der einzelnen Zeitstempelinformationen innerhalb eines Blocks wird die Einsparung an Speicherplatz realisiert:

image2018-6-28_17-36-49.png

Für welche Zeitreihentypen kann eine Komprimierung verwendet werden

Komprimierung wird für jede zyklische (zeitsynchrone) mit einem fixen Intervall, d.h. "Anfang" und "End" Zeitreihen, unterstützt. 

Spontane Zeitreihen ohne fixes Intervall können hingegen derzeit nicht sinnvoll zu einem Block zusammengefasst werden und sind daher nicht unterstützt.

Wie kann ich Komprimierung aktivieren

Komprimierung kann einzeln pro Zeitreihe aktiviert werden. Entweder in TSM Plugin - Zeitreihe Bearbeiten Bereich oder via REST API (compression=true), siehe entsprechende Bereiche in den jeweiligen Dokumentationen.

Was sind die Vorteile einer komprimierten Zeitreihe

Komprimierung, wenn richtig eingesetzt (siehe nächstes Kapitel), bringt folgende Vorteile:

  • Reduzierter Datenbankspeicherverbrauch
    Beispiel: im Falle einer Viertelstundenzeitreihe kann 80% der Datenmenge erspart werden

  • Erhöhte Lesegeschwindigkeit
    Beispiel: im Falle einer Viertelstundenzeitreihe können Daten für ein Jahr mit bis zu 20% schneller abgerufen werden

  • Deutlich erhöhte Schreibegeschwindigkeit
    Beispiel: im Falle einer Viertelstundenzeitreihe können Daten für ein Jahr mit bis zu 80% schneller geschrieben werden

Für welche Anwendungen ist eine Komprimierung sinnvoll

Da Komprimierung Zeitreihendaten blockweise abspeichert, ist die höchste Performance-Steigerung (neben reduzierter Speicherverbrauch, welche immer auftritt) dann zu erzielen, wenn ganze Blöcke ausgelesen werden. Das ist zum Beispiel der Fall, wenn Stundenzeitreihen Tageweise (oder als Ganzes Mehrfaches eines Tages) abgerufen werden. 

In diesem Sinne, je öfter auch Teile eines Blocks verarbeitet werden müssen, desto geringer wird der Performance-Gewinn.

Blockgrößen

Blockgrößen für einige typische Standard-Intervall-Längen

Intervall-Länge

Blockgröße

Viertelstunde

Day

Halbe Stunde

Day

Stunde

Day

Tag

Month

Woche

Year

Monat

Year

Quartal

Year

Halbjahr

Year

Jahr

Year

Blockgrößen für Intervall-Längen auf Sekundenbasis

Intervall-Länge

Blockgröße

< 60 Sekunden

60 Sekunden

< 900 Sekunden

Stunde

>= 900 Sekunden

Tag