NEWS
Influxdb2 Verwendung von Variablen
-
Hi Leute,
verwendet jemand Variable und kann mir das erklären?Ich werde in Zukuft von InfluxDB1 auf InfluxDB2 umstellen. Dafür habe ich in der InfluxDb2 ein Bucket "iobroker_test" und ein Bucket "iobroker_test_archiv" erstellt in der ich schon über einen 2. Influx-Adapter Daten einspiele und ausserdem einen Stand der InfluxDB1 hineingeladen habe.
Damit teste ich jetzt die Task's, die dann regelmäßig in Daten ins Archiv sammelt.
Die nach der Umstellung verwendeten Buckets werden dann Namen ohne "_test" haben.
Meine Idee war nun, Variablen anzulegen, die die Namen enthalten sodass ich nach der Umstellung nur die Variablen umbenennen muss, damit alle Tasks dann in der neuen Umgebung funktionieren.Geht das überhaupt?
Und wie muss die Variable dann geschrieben werden?
Meiner Meinung nach könnte die Query verwendet werden, aber wie schreibe ich die Query dass ein Name rauskommt.
Oder was kann ich sonst machen? -
Zumindest für den Bucketnamen habe ich eine Lösung:
buckets() |> filter(fn: (r) => r.name == "iobroker_test") |> rename(columns: {name: "_value"}) |> keep(columns: ["_value"])
Vielleicht gibt es eine bessere Lösung, wie man einen String als Stream zurückgeben kann, aber vorerst kann ich damit arbeiten
-
Ich muss das "gelöst" wieder wegnehmen.
Es funktioniert anscheinend in einer normalen Query, nicht aber im Task. -
@diwoma
Ich verstehe das Problem ehrlich gesagt nicht so richtig. Hast du so viele Tasks, dass es zu aufwändig wäre, zum Umstellungzeitpunkt alle Tasks einmalig zu editieren? Oder verstehe ich das Ziel nicht?
Theoretisch könntest du über ein Skript und den x-fachen Aufruf voninflux task update ...
die gewünschten Änderungen auf Knopfdruck durchziehen, aber der Aufwand, das einzurichten, wäre immens.
-
@marc-berg Natürlich kann ich alle Tasks bei der Umstellung editieren.
Naja, es ist eher Faulheit oder Angst, einen Task zu vergessen.Ich habe es gerade probiert, mit Secrets würde es gehen.
Aber ich hatte gehofft, es ginge einfach mit Variablen, die sind lesbar, Secrets-Values nicht.Aber durch die Version mit Secrets habe ich eine Lösung gefunden die es "einfacher" macht, dann alles zu editieren:
ich lege die Bucket-Namen am Beginn der Query selbst als Variable an und verwende sie in der Query. So sind die Änderungen alle am Beginn des Tasks zu machen und können leicht mit Copy/Paste überschrieben werden.Aber am elegantesten wäre es doch, es nur einmal einzustellen und zack, alle Tasks nehmen die neuen Werte.