InfluxDB 2 Measurements umbenennen

Aus Laub-Home Wiki

Möchte man ein Measurement in einer InfluxDB 2 umbenennen, da sich zum Beispiel bei openHAB ein Item geändert hat, man aber weiterhin in Grafana die alten Daten angezeigt bekommen will, so kann man dies mit Hilfe von flux machen. Dazu kopieren wir als erstes das alte Measurement in das neue und löschen dann das alte

Kopieren

Dafür öffnen wir im Browser als erstes das Webinterface der InfluxDB 2 und loggen uns ein.

Dann gehen wir in den "Data Explorer" und wechseln in den "Script Editor"

dort können wir dann folgendes Code Snippet verwenden:

from(bucket: "example-bucket")
    |> range(start: 2021-11-21T00:00:00Z, stop: 2021-11-22T00:00:00Z)
    |> filter(fn: (r) => r._measurement == "old")
    |> set(key: "_measurement", value: "new")
    |> to(bucket: "example-bucket")

In diesem Code Snipped editieren wir dann den Time Range den wir kopieren wollen. Dann tragen wir bei "old" das Ursprungs Measurement ein und bei "new" den Namen des neuen. Ebenfalls bitte das Bucket ändern.

Löschen

Nun muss noch das alte nicht mehr benötigte Measurement gelöscht werden. Dafür kann man den folgenden curl Befehl nutzen.

# InfluxDB Host
INFLUXHOST=localhost
# openHAB Database
INFLUXDB=openhab_db
# InflusDB API Key
INFLUXDBAUTH="TkrV8yQ8adcwwwwedsiuhf5V1OhXasdfadfeGgtzsb_bfucYeHSeTID-JlB7AKBZjE47TCwf8w-jGCFzpChw=="
# Measurement to delete
MEASUREMENT="LaubIot07BME680_Temperature"

curl -s --get http://$INFLUXHOST:8086/query?db=$INFLUXDB \
    --header "Authorization: Token $INFLUXDBAUTH" \
    --data-urlencode "q=DROP MEASUREMENT $MEASUREMENT"

Oder ihr nutzt das kleine Script hier: