InfluxDB aufräumen

Gespeichert von Erik Wegner am/um
Body

Bezeichner ermitteln

Zuerst müssen einige Bezeichner ermittelt werden. Dazu wird zuerst der influx-Client gestartet:

docker exec -it <influx-container-name-or-id> influx

Connected to http://localhost:8086 version 1.7.9
InfluxDB shell version: 1.7.9

> show databases
name: databases
name
----
_internal
smarthome

> use smarthome
Using database smarthome

> show series
key
---
downsampled
downsampled_pressure
downsampled_temperature
pressure
temp

Defekte Daten abfragen und löschen

Die Antwort auf StackOverflow hilft dabei, die defekten Daten abzufragen und zu löschen. Dieses Vorgehen ist notwendig, weil Influx keine Bedingungen beim Löschen von Datenpunkten unterstützt #3210, abgesehen vom Zeitstempel des Eintrags.

Für andere Anwendungen muss die Bezeichnung der Datenbank (smarthome) und der Serie (pressure) angepasst werden.

curl -G 'http://localhost:8086/query?db=smarthome' \
  --data-urlencode "q=SELECT * FROM pressure WHERE value>1140" |\
  jq -r "(.results[0].series[0].values[][0])" > delete_timestamps.txt

for i in $(cat delete_timestamps.txt); do
  echo $i;
  curl -G 'http://localhost:8086/query?db=smarthome' \
    --data-urlencode "q=DELETE FROM pressure WHERE time='$i'"; 
done
Kategorien

Kommentare

Permalink

Perfekte Anleitung.

Was ich schon alles durchsucht habe um die Datenbank in Docker anzusprechen.

Mit deiner Anleitung hat das perfekt funktioniert.

Jetzt stellt sich noch die Frage ob es auch einfach ist auf diesem Weg z. B. eine Datenbank wie in deinem Beispiel die "smathome" von der SD Karte auf eine Festplatte zu sichern.

 

Danke für die einfache und verständliche Anleitung - auch für Anfänger wie mich perfekt