rrd4j nach InfluxDB migrieren?

Hallo,

da ich gerade erst angefangen habe, mich mit InfluxDB zu beschäftigen, habe ich keinen besonders guten Überblick. Um sie schon mal mit genügend Daten zu füllen, und um mit ihnen mehr Möglichkeiten zu haben, wüsste ich gerne, ob es in OpenEMS oder mit anderen Tools einen Weg gibt, die historischen Werte aus rrd4j nach InfluxDB zu migrieren.

Hi,

das gleiche hatte ich auch - ich habe es dann aber gelassen, weil es mir zu Umständlich war. Da bin ich damals auf das gestossen - aber ich weiss nicht, ob es funktioniert - einen Versuch hatte ich nicht mehr gestartet.

Das habe ich auch gefunden und wenn ich es beim Überfliegen richtig verstanden habe, gibt es in OpenHAB die Möglichkeit, historische Daten über REST abzufragen.

Vielleicht kann ich das in OpenEMS über JSON-RPC und handleQueryHistoricDataRequest umsetzen.

Ich spiele mal damit etwas herum.

1 Like

Hi,

ich hatte auch mal das Problem, dass es keine zufriedenstellenden Im- und Export gab. Daher habe ich im OpenEMS die rrd4j Komponenten “geforkt” und umgeschrieben, die Daten damit exportiert und dann via CLI in Influx importiert. Es ist schon etwas umständlich, also solltest du abwägen, ob es sich für die historischen Daten lohnt. In meinem Fall waren es >8 Monate Daten, daher bin ich den Weg gegangen.

Ich müsste nochmal nachprüfen, wie ich das damals genau gemacht habe, falls großes Interesse besteht.

LG Felix

Im Moment ist meine Lösung, alle Daten jeweils pro Tag und Channel über JSON-RPC auszulesen und in eine andere Datenbank zu schreiben. Dann filtere ich die raus, die nicht benötigt werden, wie z.B. von Komponenten, die mich gar nicht interessieren.

Was übrig bleibt, schreibe ich mit dem HTTP-API in die InfluxDB.

Die rrd4j Komponente direkt zu benutzen, wäre Plan B, aber da ich in Java nicht so fit bin, wie in der DB, die ich gerade verwende, wird es wohl nicht dazu kommen. Über HTTP ist es aber recht mühselig, an die Daten zu kommen und für sieben Monate sind es inzwischen 15 Millionen Datensätze. Insgesamt ist der Zeitraum 15 Monate. Ab und zu macht wohl die REST Schnittstelle vom OpenEMS kurz dicht und es kommt keine Antwort, dann muss ich von Hand eingreifen, aber beim nächsten Aufruf geht es dann wieder.

Wenn das Ergebnis passt, werde ich beim nächsten Transfer die Antworten der JSON-RPC Aufrufe direkt nach dem Empfang aufbereiten und an die InfluxDB schicken, also ohne Zwischenspeicherung in meiner Datenbank. Das sollte in einer Nacht über die Bühne gehen.

Das wäre auf jeden Fall hilfreich, um in OpenEMS direkt auf die Daten zuzugreifen. Vielleicht findest du es noch.