NEWS
Excel-Historie -> InfluxDB importieren
-
Hallo!
Ich bin sehr zufrieden auf die InfluxDB (OSS v1 auf raspbian bookworm) umgestiegen und möchte nun gerne alte Werte aus eine Excel-Tabelle dort importieren. Ich habe den aktuellen Bestand folgendermaßen exportiert:influx -username 'admin' -password '' -database 'iobroker' -execute 'SELECT * FROM "0_userdata.0.Zählerstände.Wasser"' -format csv > text3.csv
Hier eine Beispielzeile:
name,time,ack,from,q,value 0_userdata.0.Zählerstände.Wasser,1743509614927000000,false,system.adapter.admin.0,0,52.4295
Nun habe ich meine Excel-Tabelle so umgestaltet, dass ich folgendes CSV erhalte:
0_userdata.0.Zählerstände.Wasser,time=1740787200000000000,ack=false,from=system.adapter.influxdb.0,q=0,value=45.6
Das wäre der letzte Eintrag bevor ich InfluxDB zum Laufen gebracht habe.
Wenn ich versuche den mit folgenden Kommando zu importieren, erhalte ich aber einen Fehler:influx -username 'admin' -password '' -database 'iobroker' -import -path wasser.csv error: error parsing query: found 0, expected SELECT, DELETE, SHOW, CREATE, DROP, EXPLAIN, GRANT, REVOKE, ALTER, SET, KILL at line 1, char 1
Also irgendwas mache ich beim Import falsch. Ich komme aber mit der Doku nicht so richtig weiter. Kann mich jemand bitte in die richtige Richtung stupsen? Das wäre ganz toll.
Vielen Dank für eure Unterstützung!
-
Mit influx habe ich keine Ahnung, aber das
0_userdata.0.Zählerstände.Wasser,time=1740787200000000000,ack=false,from=system.adapter.influxdb.0,q=0,value=45.6
Ist kein csv
Bei csv hat jeder Datensatz eine Zeile.
In der ersten Zeile stehen die Spalten/Feldnamen
Strings sind optimalerweise in Anführungsstriche,
Die einzelnen Felder werden mit einem trennzeichen getrennt,
Meist Komma oder Strichpunkt
https://de.wikipedia.org/wiki/CSV_(Dateiformat)?wprov=sfti1#Die Anzahl der Felder müssen in jeder Zeile stimmen.
Eigentlich so, wie du es in deiner Beispielzeile hast. Die Texte oder optional einfach jedes Feld in Anführungsstriche vermeidet Probleme.
Je nachdem wie genau inFlux prüft, müssen die Datentypen einigermaßen passen. Flexible Systeme können automatisch konvertieren. -
Hey @oliverio
Danke für deine Antwort. Einen CSV-Import im klassischen Sinne kann Influx auch irgendwie nicht. Hab ich auch irgendwie nicht verstanden... Ich habe die (unsinnige) CSV-Endung vor allem, damit ich die Datei schnell wieder editieren kann.
Aber wenn ich das richtig versteh, wird mit -import jede Zeile als Befehl für das Influx-CLI gesehen? Aber wie gesagt, mein Kopf hat gerade echte Probleme mit dem ganzen...
EDIT: Viele Menschen nutzen auch Chronograph für ihren Import. Vielleicht sollte ich mich damit auseinander setzen. Ich dachte bloß, Daten in eine Datenbank per CLI importieren sollte doch eigentlich möglich sein. -
@moritzabcde sagte in Excel-Historie -> InfluxDB importieren:
Nun habe ich meine Excel-Tabelle so umgestaltet, dass ich folgendes CSV erhalte:
0_userdata.0.Zählerstände.Wasser,time=1740787200000000000,ack=false,from=system.adapter.influxdb.0,q=0,value=45.6
Für den Import muss das „Line Protocol“ verwendet werden, der Aufbau ist dann so:
"0_userdata.0.Zählerstände.Wasser" ack=false,from="system.adapter.influxdb.0",q=0,value=45.6 1740787200000000000
-
@marc-berg
Lieben Dank!
Wenn ich im CLI den INSERT ausführe, dann erhalte ich keinen Fehler mehr. Aber wenn ich es mir mit SELECT anschaue, dann taucht der neue Wert nicht auf:> auth username: admin password: > use iobroker Using database iobroker > insert "0_userdata.0.Zählerstände.Wasser" ack=false,from="system.adapter.influxdb.0",q=0,value=45.5667 1740787200000000000 > select * from "0_userdata.0.Zählerstände.Wasser" name: 0_userdata.0.Zählerstände.Wasser time ack from q value ---- --- ---- - ----- 1741953633349000000 false system.adapter.influxdb.0 0 48.1998 1743509614927000000 false system.adapter.admin.0 0 52.4295 1746080661470000000 false system.adapter.admin.0 0 61.1488 1748818854635000000 false system.adapter.admin.0 0 70.0016 1751877437393000000 false system.adapter.influxdb.0 0 70.0016 1754042794595000000 false system.adapter.admin.0 0 89.7821
Woran könnte das liegen?
-
@moritzabcde sagte in Excel-Historie -> InfluxDB importieren:
Woran könnte das liegen?
Ich würde trotzdem den import Befehl nutzen (mit den korrigierten Daten)
influx -username 'admin' -password '' -database 'iobroker' -import -path wasser.csv
Wenn das auch nicht funktioniert, könnte es sein, dass du eine zu kurze Aufbewahrungsdauer drin hast, die deine älteren Daten gleich wieder löscht.
Was sagt?
SHOW RETENTION POLICIES ON iobroker
-
@marc-berg
Hey Marc! Danke für deine Antwort.
Ich hab es hinbekommen. Hier die Importdatei:# DML # CONTEXT-DATABASE: iobroker 0_userdata.0.Zählerstände.Wasser ack=false,from="system.adapter.influxdb.0",q=0,value=45.5677 1740787200000000000
Hier die Kommandozeile:
influx -username 'admin' -password '' -import -path wasser.csv
Mensch, war das kompliziert. Vielen Dank für Eure Unterstützung!