Persistence: rrd4j

Zweck

Der rrd4j Persistenzdienst basiert auf einer sogenannten Round-Robin-Datenbank und verwendet das Projekt rrd4j.

Im Gegensatz zu einer „normalen“ Datenbanken wie mysql, wächst die Round-Robin-Datenbank nicht in der Größe. Jedes zu speichernde Element hat eine fix zugewiesene Größe. Dies wird durch Datenkomprimierung erreicht (je älter die Daten sind desto weniger Werte sind verfügbar). Während Sie z.B. ein Wert jede Minute für die letzten 24 Stunden speichern, können Sie nur einen Wert pro Tag für das letzte Jahr haben.

Es gehen somit zwar Daten verloren, dies ist jedoch für den Zweck z.B. einer Temperaturkurve in der Home-Automation ideal. Das Verhältnis zwischen Information vs. Speicherbedarf wird automatisch durch die Datenbank optimiert.

Wann ist rrd4j nicht geeignet:

  • Wollen Sie alle Daten „für immer“ behalten müssen Sie zu einer anderen Datenbank (z.B. mysql) greifen.
  • Da rrd4j Ausschliesslich Zahlen persistieren kann muss für alle anderen Daten (z.B. Zeichenketten) auf eine andere Datenbank (z.B. mysql) zurückgegriffen werden.

Nähere Informationen zu rrd4j bekommen Sie am rrd4j Git.

Installation

Zunächst muss die rrd4j Persistence installiert werden. Dazu gehen Sie im Paper UI auf „Extensions“ – „Persistence“ und installieren die „RRD4j Persistence“.

Konfiguration

Die rrd4j muss nicht konfiguriert werden. Es ist allerdings möglich.

Testen

Folgende Konfiguration setzt voraus, dass Sie das  yahooweather Binding installiert haben. Bitte vergleichen Sie für den Test auch die Testkonfiguration für die mysql Persistence. (Der Unterschied ist hier nur, dass hier im Verzeichnis conf/persistence die Datei rrd4j.persist verwendet wird.)

conf/things

Fügen Sie folgendes in die Datei standard.things ein (falls nicht schon vorhanden):

conf/items

Fügen Sie folgendes in die Datei standard.items ein (falls nicht schon vorhanden):

conf/sitemaps

Fügen Sie folgenden Text in ihre standard.sitemap ein:

 

conf/persistence

Gehen Sie nun in das Verzeichnis conf\persistence und erzeugen Sie die Datei rrd4j.persist mit folgendem Inhalt:

Eventuell enthält die Datei schon einen Inhalt. In diesem Fall fügen Sie die drei Items in den Items Bereich ein und stellen Sie sicher dass auch die everyMinute Strategie im Strategies Bereich existiert.