InfluxDB aufräumen

Submitted by Erik Wegner on Thu, 01/02/2020 - 21:26
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

Categories