NEWS
Proxmox / Influxdb V1 zu V2... wie?
-
@Rene55 ...ich mach mal hier weiter.
Ich bin ja der absolute Docker-Guru
Aber Spaß beiseite, ev. muss der Influx-Aufruf auch mittels "docker exec..." erfolgen. Ich kann bei mir problemlos die Ausgabe mittels ">" in eine Datei umleiten. -
@sborg Hi, danke dass du für mich weiter getestet hast. Ich bin heute vormittag auf den grünen Zweig gestoßen. Machdem mich ja gestern fasst alle Versionen mit Fehlern beglückt haben und alle "Anleitungen" an sich aus seriösen Quellen stammte, musste der Fehler bei mir liegen. So war es denn auch. Ich hatte gestern alle Versuche
IN
der Influxdb gemacht, heute ausserhalb.
Und schon funktioniert der Befehlinflux -username dbuser -password xxyyzz123 -database iobroker -host localhost -execute 'SELECT * FROM "0_userdata.0.Wetterstation.Aussentemperatur"' -format csv -precision='rfc3339'> ./temperatur.csv
und exportiert mir die Daten, so wie ich es wollte. Danke an alle für die Unterstützung, Links, etc. und wollte meinen Erfolg auch hier kurz mitteilen. -
@tritor sagte in Proxmox / Influxdb V1 zu V2... wie?:
Eventuell sollte der Beitrag raus hier und in einen eigenen fred, da nicht direkt was mit dem Wetterstation-Script zu tun hat.
gute idea! das könnte ja @Negalein schnitzen.
thnx für deine tips. hab bis jetzt nur mit VMs gewerkelt... -
@da_woody sagte in Proxmox / Influxdb V1 zu V2... wie?:
gute idea! das könnte ja @Negalein schnitzen.
schau auf die Überschrift.
hat @wendy2702 schon erledigt. -
@negalein hrnz, bissl chaotisch in den letzten tagen...
mea culpa. -
Funktioniert bestens: Teil-Export von 1.8 --> 2.6.1
Vor dem Import (ich logge schon 2 Tage per Influx-Adapter):
Nach dem Import:
Bevor ich dann wieder die Syntax selbst vergesse, man kann auch den Zeitraum bei der Abfrage eingrenzen. ZB. auf die letzten 7 Tage
'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur" WHERE time>=now()-7d'
Man kann also ohne Datenverlust umziehen oder migrieren (was ich wg. ev. Altlasten bei mir nicht tun werde = tabula rasa)
-
@sborg sagte in Proxmox / Influxdb V1 zu V2... wie?:
Man kann also ohne Datenverlust umziehen oder migrieren (was ich wg. ev. Altlasten bei mir nicht tun werde = tabula rasa)
Ich stoppe vor dem Umzug zuerst den Influx Adapter, stell im Adapter auf V2, ziehe mit den Daten um und starte dann wieder den Adapter?
Laufen dann die Dashboard normal weiter, oder müssen die noch speziell auf V2 angepasst werden?
-
@negalein Jupp, wenn du mit einer InfluxDB arbeitest. Ich fahre zu Beginn lieber mal Zweigleisig, man weiß ja nie. Außerdem will ich die Influx auch von meinem NUC weg haben, deswegen läuft sie zuerst parallel auf meiner Synology im Docker, später nur noch dort.
Laufen dann die Dashboard normal weiter, oder müssen die noch speziell auf V2 angepasst werden?
Jein. Wenn du in der alten SQL-Sprache weitermachst läuft alles 1:1. Nutzt du die moderne, neuere Flux, musst du auch alle Dashboards/Widgets umstellen...
-
@sborg sagte in Proxmox / Influxdb V1 zu V2... wie?:
wenn du mit einer InfluxDB arbeitest.
hab gerade InfluxDB V2 installiert.
also auch Zweigleisig.Dann mach in ioB eine 2. Influx-Instanz, die ich für V2 verwende. Und dann zieh ich um?
Beide Instanzen trotzdem derweil stoppen? -
@negalein sagte in Proxmox / Influxdb V1 zu V2... wie?:
Und dann zieh ich um?
Damit würde ich aktuell noch warten, außer du willst Skript und Statistik von Hand ändern. Die können ja mit Influx V2 so noch nichts anfangen. Du kannst aber bedenkenlos beide parallel laufen lassen. Es macht auch überhaupt nichts aus wenn du Werte von der V1 in die V2 umziehst die dort schon existieren. Da sie den selben Zeitstempel haben werden sie einfach mit dem selben Inhalt überschrieben.
Oder du ziehst halt um, belässt Wetter so in der V1 und loggst das aber jetzt schon in die V2. Dann stellst du noch die restlichen Werte was du sonst noch loggst auf die V2 um. Kommt dann meine V3 brauchst du nur in der *.conf den Influx-Zugang ändern und kannst die V1 abschalten.
Anhalten brauchst du nichts. Das kann alles im laufenden Betrieb geschehen. Wenn du direkt beides loggst verlierst du nicht mal paar Datensätze (siehe paar Zeilen weiter oben). -
@sborg sagte in Proxmox / Influxdb V1 zu V2... wie?:
Oder du ziehst halt um, belässt Wetter so in der V1 und loggst das aber jetzt schon in die V2. Dann stellst du noch die restlichen Werte was du sonst noch loggst auf die V2 um. Kommt dann meine V3 brauchst du nur in der *.conf den Influx-Zugang ändern und kannst die V1 abschalten.
so werde ich es machen.
Steh aber gerade komplett an.
Influx 1 ist auf Host A
Influx 2 ist auf Host BDiese Anleitung ist für ein Upgrade auf 1 Host.
Ich finde nichts, wie ich die Daten von A nach B bringe und sie dann in Influx 2 übernommen werden.
-
@sborg said in Proxmox / Influxdb V1 zu V2... wie?:
Bevor ich dann wieder die Syntax selbst vergesse, man kann auch den Zeitraum bei der Abfrage eingrenzen. ZB. auf die letzten 7 Tage 'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur" WHERE time>=now()-7d'
Man kann also ohne Datenverlust umziehen oder migrieren (was ich wg. ev. Altlasten bei mir nicht tun werde = tabula rasa)@sborg Mit welchen Flags hast du exportiert?
ich habe mal testweise den schon genannten
influx -username dbuser -password xxyyzz123 -database iobroker -host localhost -execute 'SELECT * FROM "0_userdata.0.Wetterstation.Aussentemperatur"' -format csv -precision='rfc3339'> ./temperatur.csv
benutzt
und musste dann wegen Fehlermeldung bei importieren über das WebIF, den Umweg über die Console machen, wo ich die Spalten definieren musste, weil er mit dem Export-Headername,time,ack,from,q,value
nix anfangen konnte
influx write -b iobroker -f ./temperatur.csv --skipHeader=1 --header="name|measurement,time|dateTime:RFC3339,ack|boolean,from|string,q|double,value|double"
Ist auch für dich @Negalein
Auf Console Host 1 exportieren:influx -username dbuser -password xxyyzz123 -database iobroker -host localhost -execute 'SELECT * FROM "0_userdata.0.Wetterstation.Aussentemperatur"' -format csv -precision='rfc3339'> ./temperatur.csv
File von Host 1auf Host 2
Dann importieren:
influx write -b iobroker -f ./temperatur.csv --skipHeader=1 --header="name|measurement,time|dateTime:RFC3339,ack|boolean,from|string,q|double,value|double"
(Hier für die Aussentemperatur)
Aber er meckerte bei mir rum, weil er die Spalten
name,time,ack,from,q,value 0_userdata.0.Wetterstation.Aussentemperatur,2022-01-31T00:00:29.043Z,false,system.adapter.simple-api.0,0,-1.88
nicht richtig erkennt (er kann mit name nix anfangen), deswegen den Zusatz
--header="name|measurement,time|dateTime:RFC3339,ack|boolean,from|string,q|double,value|double"
um zu definieren, was was in welchem Format (z.B. ack|bool) ist.
-
Ich bin ja bekennender "Faullist"
Auf Quellhost im Verzeichnis stehend was auch der Zielhost lesen kann:
- Datei export.csv mit folgendem Inhalt angelegt
#datatype measurement,dateTime:RFC3339,boolean,string,double,double
- danach jeweils ausgeführt [xxx] jeweils passend ersetzt; ohne die []:
influx -database [DB-Name] -username [name] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur"' -format csv -precision='rfc3339' >> export.csv influx -database [DB-Name] -username [name] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Wind_max"' -format csv -precision='rfc3339' >> export.csv influx -database [DB-Name] -username [name] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Regen_Tag"' -format csv -precision='rfc3339' >> export.csv
Ergebnis für 4 Jahre Daten: ca. 200MB - Datei
Dauer bis hierhin < 1 Minute
Zielhost, im Verzeichnis stehend wo der Export statt fand
influx write -b [bucketname] -f export.csv
Das hat nun etwa 3-4 Minuten gedauert und 3 Fehlerhafte Datensätze zu Tage gebracht --> Fertig
- Datei export.csv mit folgendem Inhalt angelegt
-
@sborg said in Proxmox / Influxdb V1 zu V2... wie?:
Ich bin ja bekennender "Faullist"
warum nutzt du dann
SELECT FROM <measurement_name>,<measurement_name>
nicht ? -
https://joshuamarvel.com/upgrade-influxdb-1-8-to-2-x-on-ubuntu-20-04/
Wer traut sich drüber?
Das müsste doch auch funktionieren, wenn man die Influx in einem Container laufen hat, oder? -
@massiveattack sagte in Proxmox / Influxdb V1 zu V2... wie?:
https://joshuamarvel.com/upgrade-influxdb-1-8-to-2-x-on-ubuntu-20-04/
Wer traut sich drüber?
Das müsste doch auch funktionieren, wenn man die Influx in einem Container laufen hat, oder?Teste ich die Tage mal.
Vorher Backup vom Container und es kann nichts passieren….. theoretisch
-
@massiveattack
Geht aber nicht, wenn influxv1 auf host1 und auf host2 die influxv2 läuft -
@sborg said in Proxmox / Influxdb V1 zu V2... wie?:
Das hat nun etwa 3-4 Minuten gedauert und 3 Fehlerhafte Datensätze zu Tage gebracht --> Fertig
Die Fehler kommen wahrscheinlich davon, dass er wenn du einen neuen Datensatz anhängst, er wieder den
name,time,ack,from,q,value
als Header reinschiebt.Kann man mit einem eingeschobenen "| grep javascript.0" hier z.B. ausfiltern
influx -database [DB-Name] -username [name] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur"' -format csv -precision='rfc3339' | grep javascript.0 >> export.csv
Als Hinweis für alle:
Wenn ihr die influx auf tls/https laufen lasst, dann muss zum influx-write
--host https://localhost:8086 --skip-verify
hinzugefügt werden (der skip nur wenn das Zertifikat selbstsigniert ist). Port natürlich anpassen... Wichtig isthttps
sonst wird nur
data: read tcp 127.0.0.1:47644->127.0.0.1:8086: read: connection reset by peer
gemeldet! -
@boronsbruder sagte in Proxmox / Influxdb V1 zu V2... wie?:
@massiveattack
Geht aber nicht, wenn influxv1 auf host1 und auf host2 die influxv2 läuftLogisch
Wenn das upgrade aber so relativ easy durchgeht, kann ich gut damit leben -
@boronsbruder sagte in Proxmox / Influxdb V1 zu V2... wie?:
@sborg said in Proxmox / Influxdb V1 zu V2... wie?:
Ich bin ja bekennender "Faullist"
warum nutzt du dann
SELECT FROM <measurement_name>,<measurement_name>
nicht ?Ich komme noch aus der 16kb RAM Hauptspeicher und Diskettenära, da mussten die meisten Operationen mangels Speicher aufgeteilt werden. Das hat sich bis heute teilweise gehalten, obwohl es dank schneller Hardware und massig RAM nicht mehr nötig ist. Aber dank Linux einmal "Cursor hoch" + Wind_max/Regen_Tag müsste ich sowieso immer eintippen
@boronsbruder sagte in Proxmox / Influxdb V1 zu V2... wie?:
Kann man mit einem eingeschobenen "| grep javascript.0" hier z.B. ausfiltern
Guter Ansatz, funktioniert so aber auch nicht, außer du lässt es beim 1. Aufruf weg. Einmal wollen/müssen wir es ja haben
Die "Killervariante" für die Doku (Danke für den https-Hinweis, nehme ich dann mit auf):
echo '#datatype measurement,dateTime:RFC3339,boolean,string,double,double' > export.csv && influx -database [DB-name] -username [username] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur","javascript.0.Wetterstation.Regen_Tag","javascript.0.Wetterstation.Wind_max"' -format csv -precision='rfc3339' >> export.csv