Im Normalzustand löschen InfluxDB keine alten Daten, sondern für das Automatisches Löschen muss eine Retention-Policy angelegt werden. Die Retention-Policy beziffert einen Wert, wobei InfluxDB anfängt alte Daten hin raus zu löschen. Also alle Daten älter als die Angabe werden verworfen um Speicherplatz zu sparen.
2 Möglichkeiten führen zum Ziel
Bei der Ersten Möglichkeit wird sofort beim anlegen der Datenbank die Aufbewahrungszeit festgelegt. Also unmittelbar bei erstellen der Datenbank kann dies definiert werden.
> CREATE DATABASE <DATENBANK-NAME> WITH DURATION 4w
Hierbei werden jetzt alle Daten älter 4 Wochen kontinuierlich gelöscht. Das hält die Datenbank klein und hält Speicherplatz frei für anderen Dinge.
Es können aber auch eigene Retention Policys definiert werden.
> CREATE RETENTION POLICY <Retention-Policy-Name> ON <DATENBANK-NAME> DURATION 4w
Damit wird die Retention-Policy direkt auf eine bestehenden Datenbank angewandt und auch durchgeführt. Bitte denkt daran, dass eure Daten älter als eure angegebene Aufbewahrungszeit direkt verworfen werden.
15. Februar 2022 um 11:03 Uhr
hi dennis,
danke für deinen tipp.
bin mit meiner influxDB auf nem raspi 3b+ so langsam am ende des memorys angekommen (db ca 1.6GB)
aber was kann ich machen, wenn ich die daten alle behalten möchte (so wegen langzeit beobachtung – nutze es mit HomeAssistant und Wetterdaten).
Danke und Gruss
Jens
10. Januar 2023 um 10:54 Uhr
Schon mal was von CQ gehört? Gehört zu influxdb dazu…
Erstelle eine CONTINUOUS QUERY und schreibe die Daten ausgedünnt auf eine andere Tabelle / DB.
Dann stelle die RP ein. Die RETENTION POLICY beschreibt, wie lange die Daten aufbewahrt werden sollen. Die eigentliche ROHDATENBANK mit den sekündlichen Messdatensätzen sollte nur wenige Tage bis Wochen beinhalten, danach genügen minütliche Mittelwerte.
Man kann diese Datenbank/Tabelle einer anderen RP unterliegen lassen mit längerer Aufbewahrung.