Hallo,
ich nutze Influxdb V2 um die Daten, die Openhab 4.1.1 sammelt, zu speichern.
Jetzt habe ich festgestellt, dass der Platzbedarf der DB rapide wächst, es sind jetzt schon 38GB nach 3 Monaten.
Ich habe ca. 10 Temperatur/Luftfeuchtigkeitssensoren, greife Daten vom Smartmeter ab, messe das Balkonkraftwerk und habe ein paar Schalter.
Manche Werte möchte ich auch gerne weiterhin recht detailiert speichern, aber z.B. interessiert es mich wenig, wann ein Lichtschalter vor einem Monat gedrückt wurde.
Kann ich irgendwie detailierter bestimmen, welche Werte in der InfluxDB dauerhaft gespeichert werden sollen und welche nur kurzfristig, oder z.B. welche ganz gelöscht werden können oder bei welchen ich die Auflösung verringern möchte, ähnlich wie das die RRD4J macht? Oder kann ich manche Werte weiterhin in der RRD4J speichern und nur die, die ich auf Dauer hochaufgelöst behalten möchte in der Influx?
influxdb wächst zu schnell
- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: influxdb wächst zu schnell
Du kannst für jedes Item einzeln entscheiden, ob es persistiert wird.
Diese Entscheidung kannst Du auch über die direkte Gruppenzugehörigkeit steuern (also z.B. falls Du eine Gruppe mit allen Temperatursensoren hast, kannst Du bestimmen, dass die Member dieser Gruppe persistiert werden sollen).
Weiterhin kannst Du jeweils einzeln entscheiden, ob jedes Update, nur Werteänderungen oder gar nur zu bestimmten Zeitpunkten persistiert werden soll.
All diese Entscheidungen kannst Du außerdem für jeden Persistence Service einzeln treffen.
Und nun kommt das Wichtigste: Wenn Du diese Entscheidungen nicht triffst, wird jedes Item in jedem installierten Persistence Service mit der Strategy everyChange, everyMinute persistiert (kann sogar sein, dass es everyUpdate ist, da bin ich mir nicht sicher)
Die entsprechende Konfiguration findest Du ab openHAB4.1 unter Einstellungen -> Add-On Settings (also die rechte Spalte bei der Desktopansicht), dort der betreffende Persistence Service -> Persistence Configuration.
Im Bereich Configuration entscheidest Du über die zu persistierenden Items und welches Strategies verwendet werden sollen.
Achtung! Der Stern * ist KEIN Joker (außer er steht alleine, dann steht er für alle Items, das möchtest Du nicht).
Stattdessen kennzeichnet man Group Items hinten mit einem Sternchen, also z.B. die Gruppe gAlleTemperaturen wird in der Persistence als gAlleTemperaturen* angegeben. Das bedeutet dann: Persistiere STATT des Items selbst ausschließlich dessen unmittelbare Member mit den angegebenen Strategies.
In openHAB4.0 findet man die entsprechende Option über den Addon Store, und dort über das betreffende Addon (rechts neben REMOVE ein winzig kleines Zahnrad...)
Vor openHAB4 war die Zuordnung ausschließlich über Textdateien möglich ($OPNEHAB_CONF/persistence/<addon-name>.persist).
Vor openHAB3 wurden nur die Items persistiert, die auch über die Textdatei dafür konfiguriert wurden, mit openHAB3 wurde dieses Verhalten geändert, mutmaßlich, um den Leuten den Einstieg zu erleichtern (ob das tatsächlich geholfen hat...?)
So, aber noch mal zurück zu der Menge an Daten... Bei mir werden alle Items mit everyChange persistiert. Das System läuft schon etwas, ich habe z.B. den Verbrauchsverlauf meines Stromzählers für das letzte Jahr (die Messwerte kommen sekündlich rein...) und viele andere Messwerte kommen bei jeder Änderung rein, meine Datenbank ist gerade mal etwas über 3,1 GByte groß. Ich habe 1457 Items in meinem System, nur so zur Orientierung. Die 38 GByte in drei Monaten erscheinen mir extrem unwahrscheinlich, eventuell ist da also etwas grundsätzlich nicht in Ordnung.
Diese Entscheidung kannst Du auch über die direkte Gruppenzugehörigkeit steuern (also z.B. falls Du eine Gruppe mit allen Temperatursensoren hast, kannst Du bestimmen, dass die Member dieser Gruppe persistiert werden sollen).
Weiterhin kannst Du jeweils einzeln entscheiden, ob jedes Update, nur Werteänderungen oder gar nur zu bestimmten Zeitpunkten persistiert werden soll.
All diese Entscheidungen kannst Du außerdem für jeden Persistence Service einzeln treffen.
Und nun kommt das Wichtigste: Wenn Du diese Entscheidungen nicht triffst, wird jedes Item in jedem installierten Persistence Service mit der Strategy everyChange, everyMinute persistiert (kann sogar sein, dass es everyUpdate ist, da bin ich mir nicht sicher)
Die entsprechende Konfiguration findest Du ab openHAB4.1 unter Einstellungen -> Add-On Settings (also die rechte Spalte bei der Desktopansicht), dort der betreffende Persistence Service -> Persistence Configuration.
Im Bereich Configuration entscheidest Du über die zu persistierenden Items und welches Strategies verwendet werden sollen.
Achtung! Der Stern * ist KEIN Joker (außer er steht alleine, dann steht er für alle Items, das möchtest Du nicht).
Stattdessen kennzeichnet man Group Items hinten mit einem Sternchen, also z.B. die Gruppe gAlleTemperaturen wird in der Persistence als gAlleTemperaturen* angegeben. Das bedeutet dann: Persistiere STATT des Items selbst ausschließlich dessen unmittelbare Member mit den angegebenen Strategies.
In openHAB4.0 findet man die entsprechende Option über den Addon Store, und dort über das betreffende Addon (rechts neben REMOVE ein winzig kleines Zahnrad...)
Vor openHAB4 war die Zuordnung ausschließlich über Textdateien möglich ($OPNEHAB_CONF/persistence/<addon-name>.persist).
Vor openHAB3 wurden nur die Items persistiert, die auch über die Textdatei dafür konfiguriert wurden, mit openHAB3 wurde dieses Verhalten geändert, mutmaßlich, um den Leuten den Einstieg zu erleichtern (ob das tatsächlich geholfen hat...?)
So, aber noch mal zurück zu der Menge an Daten... Bei mir werden alle Items mit everyChange persistiert. Das System läuft schon etwas, ich habe z.B. den Verbrauchsverlauf meines Stromzählers für das letzte Jahr (die Messwerte kommen sekündlich rein...) und viele andere Messwerte kommen bei jeder Änderung rein, meine Datenbank ist gerade mal etwas über 3,1 GByte groß. Ich habe 1457 Items in meinem System, nur so zur Orientierung. Die 38 GByte in drei Monaten erscheinen mir extrem unwahrscheinlich, eventuell ist da also etwas grundsätzlich nicht in Ordnung.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 17
- Registriert: 9. Dez 2018 17:42
Re: influxdb wächst zu schnell
Vielen Dank für die ausführliche Antwort.
Wow, ich musste irgendwie lange suchen, um den blauen Link "Persistence configuration" als solchen wahrzunehmen, irgendwie dachte ich das ist eine Überschrift, die man gar nicht klicken kann...
Aber ich habe diese Einstellungen jetzt mal vorgenommen und werde schauen, ob es jetzt weniger schnell wächst. Deine Antwort hat mir auf jeden Fall schon mal sehr geholfen, das besser zu verstehn.
Ich hatte tatsächlich unter den Strategies nicht nur die Default Strategy "everyChange" sondern wohl zusätzlich noch "everyMinute 0**?**", "everyHour 00***?" und "everyDay 000**?". Die habe ich jetzt mal entfernt und in der Configuration nur einzelne Items selektiert.
Wow, ich musste irgendwie lange suchen, um den blauen Link "Persistence configuration" als solchen wahrzunehmen, irgendwie dachte ich das ist eine Überschrift, die man gar nicht klicken kann...
Aber ich habe diese Einstellungen jetzt mal vorgenommen und werde schauen, ob es jetzt weniger schnell wächst. Deine Antwort hat mir auf jeden Fall schon mal sehr geholfen, das besser zu verstehn.
Ich hatte tatsächlich unter den Strategies nicht nur die Default Strategy "everyChange" sondern wohl zusätzlich noch "everyMinute 0**?**", "everyHour 00***?" und "everyDay 000**?". Die habe ich jetzt mal entfernt und in der Configuration nur einzelne Items selektiert.
-
- Beiträge: 17
- Registriert: 9. Dez 2018 17:42
Re: influxdb wächst zu schnell
Nun habe ich angefangen, einzelne Measurements nacheinander aus der InfluxDB zu löschen, aber die Dateigröße (du -sh /var/lib/influxdb
) ist nicht weniger geworden.
Dann bin ich auf die Idee gekommen, die Größe pro Bucket auszulesen. Das geht über und dann
Dadurch habe ich festgestellt, dass es gar nicht mein openhab-bucket war, der so stark gewachsen ist, sondern der initalbucket. Seltsam, da ich in dem über den Data Explorer auch gar keine Measurements gefunden habe. Aber nun habe ich diesen Bucket gelöscht, jetzt ist die Dateigröße erträglich.
) ist nicht weniger geworden.
Dann bin ich auf die Idee gekommen, die Größe pro Bucket auszulesen. Das geht über
Code: Alles auswählen
influx bucket list
Code: Alles auswählen
du --max-depth=1 -h /var/lib/influxdb/engine/data
- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: influxdb wächst zu schnell
Vermutlich ist da einfach etwas intern durcheinander geraten...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet