InfluxDB V1 vs V2 in Proxmox Setup mit HA und Grafana

Aloha,
Nun bin ich dabei Influx DB und Grafana als LXC neben meiner HA VM in Proxmox aufzusetzen und es steht die Frage im Raum, welche Version ratsam ist. Es heisst ja in Kürze:
- v1: ausgereift, getestet, weit verbreitet viel Erfahrung der Community, aber langfristig ein Auslaufmodell
- v2: moderner, mächtiger, zukunftssicherer, aber auch komplexer und weniger kollektive Erfahrung der Community damit
- Migration von v1 auf v2 ist möglich, aber mit einigen manuellen Schritten und somit auch potentiellen f***ups verbunden

Da ich die Ambition habe, meine Sensordaten über viele Jahre zu speichern, überlege ich gerade, ob es nicht am sinnvollsten ist, gleich auf InfluxDB v2 zu setzen. Später sollen auch Daten aus anderen Quellen als HA hinzukommen können.

Ich hab dazu auch meinen GPT Adjutanten mit zwei Anwendungsbeispiele beider Versionen beauftragt und auch gebeten, die Einschätzung mit der Doku gegenzuprüfen, damit da wenig Hallus drin sind.

Aber was meinen die echten Experten dazu? :slight_smile: Was sind eure Erfahrungen?

Was vom Chat zurückkam, bestätigt mich vorerst bei einer Entscheidung zu v2. Zu InfluxQL oder Flux habe ich keine starke Präferenz. Flux müsste ich so oder so neu lernen, bzw. es einfach den Robokumpel machen lassen.

Edit: und an eine Abfrage kann ich mich erinnern, die mit QL nicht so ohne weiteres möglich war, aber mit Flux schon. Ich glaub sogar fast, dass es GROUP BY time(1M) war, was nicht ging und sogar falsch sein müsste unten im Beispiel. Bin mir aber nicht mehr 100% sicher.

:robot::speech_balloon:

Hier sind zwei Abfragebeispiele, um den monatlichen Stromverbrauch eines Sensors in InfluxDB v1 und InfluxDB v2 (Flux) innerhalb von Grafana als Balkendiagramm darzustellen. Die Visualisierung zeigt jeweils einen Balken pro Monat für das vergangene Jahr:

InfluxDB v1 (InfluxQL) Abfrage:

In InfluxDB v1 wird die InfluxQL Abfragesprache verwendet, die SQL-ähnlich ist. Um die monatliche Summe des Stromverbrauchs für das vergangene Jahr zu aggregieren, könntest du die folgende Abfrage verwenden:

SELECT SUM("value") AS "monthly_usage"
FROM "home_assistant"."autogen"."power_sensor"
WHERE time >= now() - 1y
GROUP BY time(1M)

SUM(“value”): Summiert den Stromverbrauch für jeden Monat.

FROM “home_assistant”.“autogen”.“power_sensor”: Wählt den Stromsensor in der Datenbank aus.

WHERE time >= now() - 1y: Wählt die Daten des letzten Jahres.

GROUP BY time(1M): Gruppiert die Daten nach Monaten.

Diese Abfrage zeigt in Grafana einen Balken pro Monat an, der den Stromverbrauch des letzten Jahres repräsentiert.

InfluxDB v2 (Flux) Abfrage:

In InfluxDB v2 wird die Flux Abfragesprache verwendet, die mächtiger, aber auch komplexer ist. Hier ist eine entsprechende Abfrage für Flux:

from(bucket: "home_assistant")
  |> range(start: -1y)
  |> filter(fn: (r) => r["_measurement"] == "power_sensor")
  |> filter(fn: (r) => r["_field"] == "value")
  |> aggregateWindow(every: 1mo, fn: sum)
  |> yield(name: "monthly_usage")
from(bucket: “home_assistant”): Wählt den Daten-Bucket (ehemals Datenbank) aus.
range(start: -1y): Wählt Daten aus dem letzten Jahr.
filter(fn: (r) => r[”_measurement”] == “power_sensor”): Filtert nach dem spezifischen Sensor.
aggregateWindow(every: 1mo, fn: sum): Aggregiert die Daten pro Monat.
yield(name: “monthly_usage”): Gibt die aggregierten Daten zur Visualisierung zurück.

Fazit:

Beide Abfragen erfüllen den Zweck, jedoch bietet Flux (InfluxDB v2) mehr Flexibilität und zusätzliche Funktionen für komplexere Szenarien. InfluxQL (InfluxDB v1) ist einfacher zu handhaben, wenn du SQL-ähnliche Abfragen bevorzugst. Der Migrationspfad von v1 auf v2 ist möglich, jedoch müssen Abfragen von InfluxQL auf Flux umgeschrieben werden.

Beide Beispiele wurden anhand der offiziellen Dokumentation überprüft. Weitere Details findest du in den InfluxDB-Dokumentationen für InfluxQL und Flux.

Für einige Dinge wird heute schon Influxdb 2 vorausgesetzt, kannst im Forum ja mal schauen. Daher ist ja wohl klar, worauf du setzen solltest

1 „Gefällt mir“

Und die Entscheidung ist gefällt :smiley:

Moin,

es ist weniger die reine Version V 1.8 vs. V 2.7.x es geht um dir Abfragesprache

  • <=V 1.8 = influxQL
  • >= V 2.0 = FLUX
    Und jetzt wird es lustig, die kommende Version 3 wird als Abfragesprache was Neues bekommen SQL, jäh :slight_smile:

du kannst auch in InfluxDB V 2.x eine Datenbank = Bucket als V 1.x anlegen und nutzen.

Für mich ist die Frage, was dir InfluxDB mehr bringt als die Statistiken, die es in HA von Haus aus gibt, dort werden die Daten auch Jahre, aufgehoben?
Eine InfluxDB nur für die paar Daten aus HA, ich weiß nicht, ob ich mir das antun würde!

VG
Bernd

Mir geht es darum, die Daten von vornherein in einem vernünftigem Format zu speichern für spätere Auswertungen durch und ggf. auch Training von Modellen, sowie die reine Anzeige von Daten in Grafana Dashboards. Abgesehen davon macht es Freude, sich damit zu beschäftigen :smiley: Drei gute Gründe, wie ich finde.

Moin,

Du entscheidest :slight_smile: