Ich erinnere mich noch gut daran, als ich das erste Mal meinen Home Assistant mit InfluxDB verbunden habe. Damals war ich total begeistert, endlich historische Messwerte von Temperatur, Luftfeuchtigkeit oder Stromverbrauch sauber zu loggen. Über die Zeit sammelt sich da aber eine Menge Datenmüll an. Irgendwann kam der Moment, an dem ich mich fragte: „Wie lösche ich eigentlich alte oder unnötige Daten aus InfluxDB, ohne alles durcheinanderzubringen?“ Wenn Du auch vor diesem Problem stehst, dann lies einfach weiter.
Hier im Video ab Minute 38:10 zeige ich dir, wie das funktioniert.
Warum Daten löschen?
Ich persönlich nutze InfluxDB, um langfristige Trends zu analysieren. Doch mit der Zeit wachsen diese Datenbanken zu wahren Riesen Berg heran. Alte Messpunkte, die ich längst nicht mehr brauche, nehmen unnötig Platz weg und verlangsamen manchmal auch Abfragen. Außerdem will ich ab und zu einfach aufräumen, um meine Grafiken übersichtlicher zu halten.
Vorbereitung
Bevor ich mit dem Löschen beginne, schaue ich mir zuerst genau an, welche Daten überhaupt raus sollen. Typischerweise habe ich für Home Assistant ein oder mehrere Measurements (Messreihen) angelegt, zum Beispiel für Temperaturen, Luftfeuchtigkeit oder Stromverbrauch. Vielleicht will ich auch nur einen bestimmten Zeitraum löschen – etwa alles vor einem bestimmten Datum, weil das ohnehin längst veraltete Messwerte sind.
Wenn Du InfluxDB 1.x nutzt, hast Du wahrscheinlich Zugriff auf das InfluxDB CLI oder Du kannst über den integrierten Web-Interface (Chronograf) arbeiten. Klicke einfach auf das Influx Logo, falls das nicht da ist, gehe in deinen Addon Store und klicke auf „Öffne Weboberfläche“
Hier die Influx DB 1 Variante, aus dem Offiziellen Home Assistant Addon Store installiert.
Den Wert möchte ich löschen:
Hier Beispielhaft meine Selektion, wie ich in Influx & Grafana Daten sehe.
Daraus leiten wir unseren Löschbefehl ab:
SELECT mean("value") FROM "W" WHERE ("entity_id"::tag = 'studio_zigbee_irheizung_leistung') AND $timeFilter GROUP BY time($__interval) fill(previous)
Bitte passe alle Namen wie dein Influx DB Datenbankname an, deine Entität ID, sowie die Einheit (in meinem Fall W für Watt), sodass alles gelöscht werden kann.
USE "homeassistant" ; DELETE FROM "W" WHERE "entity_id" = 'studio_zigbee_irheizung_leistung'
Nacharbeiten
Wenn Du Grafiken in Home Assistant oder in Grafana verwendest, kann es sein, dass Du die Ansichten aktualisieren musst, um zu sehen, dass alte Daten verschwunden sind. Manchmal reicht ein Reload des Dashboards. Hier siehst du, sind jetzt alle Daten weg.
Fazit
Für mich ist das regelmäßige Aufräumen in InfluxDB längst Routine geworden. Durch das Löschen alter Daten halte ich meine Smart-Home-Statistiken schlank, sorge für bessere Performance und habe immer einen klaren Blick auf die wirklich relevanten Zeiträume. Wenn auch Du Deine InfluxDB in Schuss halten willst, probiere es einfach mal aus. Es ist gar nicht so kompliziert, wie es auf den ersten Blick scheint.
Hast Du noch Fragen oder eigene Tipps zum Thema Daten löschen in InfluxDB?