Mehrere InfluxDBs zusammenführen

Hallo zusammen
Ich habe es aufgrund einer Fehlkonfiguration geschafft, dass ich nun zwei InfluxDBs habe eine bis ca. Juli 2024 und eine seit dem. Ich suche nun nach einer Möglichkeit diese zusammenzuführen. Bin mit DBs nicht so bewandert und habe bisher nichts gefunden. Da ich nicht der DB Hero bin, bräuchte ich hier Hilfe.

Kann mir jemand helfen?

Moin,

das kommt darauf an.
Wie ist denn alles installiert, welche Versionen, setzt Du ein.

Man kann die Daten aus einer Datenbank auslesen und gleich wieder in die neue hineinschreiben.

Es sollte auch durch Backup der alten Datebank und restore in die neue Datenbank gehen

Oder man nutzt Downsampling, ohne Down zu sampeln :wink:

VG
Bernd

Wie meinst du wie es denn installiert ist?
Ich habe InfluxDB unter Home Assistent installiert (Version 5.0.0).
image

Hier habe ich zwei DBs


“home” ist die alte von der die Daten in die neue “homeassistant” müssen.

Moin,

das ist die Versionsnummer des Add-ons, es gibt nur InfluxDB V 1.8 oder InfluxDB V 2.7.x
:slight_smile:

Ok dann gehe ich mal vom Standard aus, dann ist es die V 1.7.

Ab, da ist es für mich schon mal schwer, da ich keine mehr habe, ich habe nur noch influxDB V 2.7.x

Ich muss da jetzt erst mal suchen.

Man könnte es mit einem Backup der alten home versuchen und das Backup in die neue homeassistant schreiben.

Dazu muss man aber in HA in das Terminal und sich in den Docker Container von influxDB begeben, dazu muss das Advance ssh & WEB Terminal in den unsicheren Modus versetzt werden !!!

Von

Zu


Einmal neu starten.
Im Terminal, kann man dann erst einmal schauen welche Add-ons laufen

  Observer URL:             http://homeassistant.local:4357
➜  ~ docker ps -a
CONTAINER ID   IMAGE                                                      COMMAND               CREATED          STATUS                   PORTS                                                                                  NAMES
b6c019266c7b   ghcr.io/hassio-addons/influxdb/amd64:5.0.0                 "/init"               25 seconds ago   Up 24 seconds            0.0.0.0:8086->8086/tcp, :::8086->8086/tcp, 0.0.0.0:8088->8088/tcp, :::8088->8088/tcp   addon_a0d7b954_influxdb
f45cb38db0ab   ghcr.io/hassio-addons/ssh/amd64:19.0.0                     "/init"               3 minutes ago    Up 3 minutes                                                                                                    addon_a0d7b954_ssh
5496889adf0b   homeassistant/amd64-addon-nginx_proxy:3.10.1               "/init"               3 hours ago      Up 3 hours               0.0.0.0:443->443/tcp, :::443->443/tcp                                                  addon_core_nginx_proxy
cfc38f75c77d   zigbee2mqtt/zigbee2mqtt-proxy-amd64:0.2.0                  "/entrypoint.sh"      3 hours ago      Up 3 hours                                                                                                      addon_45df7312_zigbee2mqtt_proxy
f734fa536457   bf7963f0/amd64-addon-ism7mqtt:v0.0.17                      "/init /run.sh"       3 hours ago      Up 3 hours                                                                                                      addon_bf7963f0_ism7mqtt
b4dda77fccf7   ghcr.io/hassio-addons/vscode/amd64:5.15.0                  "/init"               3 hours ago      Up 3 hours (healthy)                                                                                            addon_a0d7b954_vscode
2afe1bbd021c   ghcr.io/hassio-addons/zwave-js-ui/amd64:3.11.0             "/init"               3 hours ago      Up 3 hours (healthy)                                                                                            addon_a0d7b954_zwavejs2mqtt
a143fdbd3ebd   ghcr.io/home-assistant/amd64-hassio-multicast:2024.03.0    "/init"               3 hours ago      Up 3 hours                                                                                                      hassio_multicast
fbde9630f32b   ghcr.io/home-assistant/amd64-hassio-audio:2023.12.0        "/init"               3 hours ago      Up 3 hours                                                                                                      hassio_audio
a2961a3389d8   ghcr.io/home-assistant/amd64-hassio-dns:2024.04.0          "/init"               3 hours ago      Up 3 hours                                                                                                      hassio_dns
ed30cd99dff1   ghcr.io/home-assistant/amd64-hassio-cli:2024.07.0          "/init"               3 hours ago      Up 3 hours                                                                                                      hassio_cli
9c1f49cac076   ghcr.io/home-assistant/amd64-hassio-supervisor:latest      "/init"               3 days ago       Up 3 hours                                                                                                      hassio_supervisor
110cdd12d9cf   ghcr.io/hassio-addons/glances/amd64:0.21.1                 "/run.sh"             6 days ago       Exited (0) 6 days ago                                                                                           addon_a0d7b954_glances
d2219e8101f0   ghcr.io/home-assistant/qemux86-64-homeassistant:2024.9.1   "/init"               9 days ago       Up 3 hours                                                                                                      homeassistant
8d0286803c17   homeassistant/amd64-addon-letsencrypt:5.1.4                "/init"               10 days ago      Exited (0) 10 days ago                                                                                          addon_core_letsencrypt
3553f52a7e41   ghcr.io/home-assistant/amd64-hassio-observer:2023.06.0     "/usr/bin/observer"   4 months ago     Up 3 hours               0.0.0.0:4357->80/tcp, :::4357->80/tcp                                                  hassio_observer
➜  ~ 

Da findet sich dann der Container Name, den man braucht addon_a0d7b954_influxdb um in den Container zu kommen

➜  ~ docker exec -it addon_a0d7b954_influxdb  /bin/bash 

Dann ändert sich der Prompt

root@a0d7b954-influxdb:/# 

Dann sollte man einmal schauen, ob man genug Platz hat

root@a0d7b954-influxdb:/# df -h
Filesystem                                               Size  Used Avail Use% Mounted on
overlay                                                   31G   16G   15G  53% /
devtmpfs                                                 3.8G     0  3.8G   0% /dev
tmpfs                                                    3.8G     0  3.8G   0% /dev/shm
/dev/sda8                                                 31G   16G   15G  53% /ssl
ds716plus.fritz.box:/volume2/home_assistant/freigegeben   50G  999M   50G   2% /share/haos_nas_freigeaben
tmpfs                                                    3.8G     0  3.8G   0% /proc/asound
tmpfs                                                    3.8G     0  3.8G   0% /proc/acpi
tmpfs                                                    3.8G     0  3.8G   0% /proc/scsi
tmpfs                                                    3.8G     0  3.8G   0% /sys/firmware

Wie man sieht, habe ich ein NAS Synology eingebunden, somit kann ich die Backups dort hinschreiben.

Dann machen wir mal ein Backup der alten Datenbank home

influxd backup -portable -db home /share/haos_nas_freigeaben

Dann sollte da hoffentlich was liegen
Mit einem Restore in eine bestehende Datenbank sollte man das Backup in homeassistant bekommen.

influxd restore -portable -db home -newdb homeassistant /share/haos_nas_freigeaben

Dann sollten die Daten in die neue homeassistant geschrieben werden.
Sauber aus dem InfluxDB Container wieder raus

root@a0d7b954-influxdb:/# exit

Und nicht vergessen im ssh & WEB Terminal wieder die Sicherheit einzuschalten.

Das alles natürlich ohne Gewähr, dass es auch so funktioniert, also vorher immer ein Vollbackup machen.

VG
Bernd

Wow, danke für die Anleitung. Werde es heute Abend ausprobieren.

Nachtrag:
Salü Bernd
Wenn ich den Code richtig verstehe, bekomme ich so eine neue DB (-newdb) mit dem Namen “homeassistent”. Diese hat dann die Daten aus der DB “home”. Aber die Daten welche ich bereits in der DB “homeassistent” gesammelt habe sind dann nicht mehr da.
Ich möchte aber die Daten der beiden DBs in einer DB zusammenfassen.
Geht das auch?

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Moin,

Hm, ja, diesen Schritt musst Du nicht machen, denn Du bleibst ja auf der gleichen InfluxDB

Aus der Dokumentation:

Dann sollte es ja noch einfacher sein, dann braucht es auch kein Backup.

Dann sollte es auch einfach mittels des SQLs gehen

Use InfluxQL or Flux to query data from the temporary database and write it back to the existing database.

-- Repeat for each retention policy in the temporary database
SELECT * INTO "homeasistant".autogen.:MEASUREMENT FROM "home".autogen./.*/ GROUP BY *

Wobei in Deinem Fall die temporäre Datenbank, Deine home ist und die existierende Datenbank homeassistant ist.

Aber immer daran denken, lieber ein Backup mehr haben, als eines zu brauchen :wink:

VG
Bernd

Danke für die schnelle Antwort. Wenn ich dieses Query absetze bekomme ich nach einer Weile immer die Fehlermeldung.

Was mache ich falsch?

Mit einzelnen Elementen
SELECT * INTO “homeassistant”.“autogen”.“°C” FROM “home”.“autogen”.“°C” GROUP BY *
funktioniert es. Das reicht mir, dann nehmen ich die mit welche ich brauche,

@dp20eic > Herzlichen Dank

Moin,

Ja, MEASUREMENT ist ein Platzhalter, denn musst Du natürlich gegen den austauschen, den Du kopieren willst.
Ansonsten muss man halt erst alle measurement auslesen und dann übertragen, also irgendwas mit where measurement = *

VG
Bernd