NEWS
InfluxDB 2.0 Measurement löschen
-
Ich möchte mal mein Vorgehen zum Löschen von Datenreihen in InfluxDB 2.0 beschreiben. Vielleicht kann es jemand gebrauchen der wie ich nur Erklärungen für InfluxDB < 2.0 gefunden hat.
Auf jeden muss man als erstes das Aufzeichnen des Datenpunktes in ioBroker deaktivieren. Wenn eine ID vergeben wurde diese als Measurement Bezeichner nutzen.
Los geht's:
Eine Konsole auf der Installation öffnen auf der sich InfluxDB 2.0 befindet.Um nicht ständig den Token und die Organisation bei den Befehlen eingeben zu müssen hab ich eine config dafür erzeugt.
Den Token findet man in InfluxDB unter "Data - API Tokens". Die Datenbank auswählen, bei mir heißt sie ioBroker. Im sich öffnenden Fenster steht oben der Token. Dann einfach Copy to Clipboard geklickt dann kann man sie einfacher in der Konsole einsetzen.
InfluxDate schreibt dazu:
influx config create --config-name <config-name> \
--host-url http://localhost:8086 \
--org <your-org> \
--token <your-api-token> \
--activeDas nun angepasst in der Konsole eingegeben.
spacerx@InfluxDB-Grafana:~$ influx config create --config-name spacerx --host-url http://localhost:8086 --org RBE --token abcdefghijklmnop123456789 --active
Nun der Befehl um den Eintrag komplett zu löschen.
InfluxDate schreibt dazu:influx delete \
--bucket example-bucket \
--start 1970-01-01T00:00:00Z \
--stop $(date +"%Y-%m-%dT%H:%M:%SZ") \
--predicate '_measurement="example-measurement"'Das angepasst auf meine Datenbank und die ID des Datenpunktes in der Konsole eingegeben.
spacerx@InfluxDB-Grafana:~$ influx delete --bucket ioBroker --start 1970-01-01T00:00:00Z --stop $(date +"%Y-%m-%dT%H:%M:%SZ") --predicate '_measurement="ID-Datenpunkt"'
Schwups nun ist ID-Datenpunkt aus InfluxDB verschwunden.
-
Danke für die Anleitung. Für alle, die wie ich noch eine 1.X Version von InfluxDB nutzen, ist die Vorgehensweise anders:
Einlogen über die Shell:
influx -username ABCD -password 1234
Danach die Datenbank auswählen (falls Name unbekannt, über show databases zur Anzeige bringen und den richtigen auswählen:
use iobroker
Jetzt kann die gewünschte Aufzeichnung einfach mittels diesem Befehl gelöscht werden:
drop measurement "Name_Der_Messung"
-
Mich sterngt die Handhabung der InfluxDB Daten auch etwas an. Gibts hier nicht nen Profi mit zuviel Freizeit der InfluxDBStudio für Influx 2.x und KlickKlickWindows User weiterntwickeln kann?
-
@rushmed Profi ja, Zeit nein.... geht mit KlickKlickWindows und der Influx v2 API... siehe hier: https://docs.influxdata.com/influxdb/v2.2/api/#tag/Delete
-
@rushmed
Du hast doch nun die Vorlage hier. Einfach copy & paste und anpassen. Schneller gehts nicht. -
@spacerx Ich konnte das schon vorher und es geht auf jeden Fall schneller und übersichtlicher.
-
@spacerx Sorry, Du hast das bestimmt super erklärt aber ich bekomme es nicht hin:
damrak2022@InfluxDB-Grafana:~$ influx config create --config-name damrak2022 --host-url http://localhost:8086 --org Andy --token fayAjyR5wxqnnusJHjEJOebhQMoWm1EKqXB9aZEaj-6Gv9QxiFgOpdRQw6nahGIN47xxxxxxxxxt8MKa9aw== --active -bash: damrak2022@InfluxDB-Grafana:~$: command not found
Ich habe den Api Token eingefügt, bin aber etwas irritiert da meine Datenbank DBAndy1 heißt.
Weiterhin möchte ich nur einzelne falsche Datenpunkte löschen und keine Bereiche. -
@damrak2022 Falsche Datenpunkte löschen?
sudo influx delete --token deinToken --org deinOrgName --bucket deinBucketName --start 2022-07-28T10:00:00.000Z --stop 2022-07-28T10:30:00.000Z --predicate '_measurement="dieReihewowasgeloeschtwerdensoll"'
Löscht alle Datenpunkte am 28.07. zwischen 10:00 - 10:30 Uhr
-
Genau! Probiere mal sudo davor. Scheint ein Rechte Problem zu sein.
was sagt sudo influx -h ?
Ansonsten so wie @ftd schrieb. Die Userconfig ist nur dazu da um nicht jedes mal den token mit eingeben zu müssen.
-
@spacerx Zuerst habe ich es mal Testwiese mit angepassten Daten eingegeben wie @ftd erklärt hatte:
Dann bekomme ich das:pi@homebridge:~ $ sudo influx delete --token fayAjyR5wxqnnusJHjEJXXXXXXXXXXXXX-6Gv9QxiFgOpdRQw6nahGIN474W75Sr0im9TFt8MKa9aw== --org Andy --DBANDY1 --start 2022-06-20T10:00:00:000Z --stop 2022-06-20T10:10:00.000 --predicate '_measurement="dieReihewowasgeloeschtwerdensoll"' Incorrect Usage: flag provided but not defined: -DBANDY1 NAME: delete - Delete points from InfluxDB USAGE: delete [command options] [arguments...] DESCRIPTION: Delete points from InfluxDB, by specify start, end time and a sql like predicate string COMMON OPTIONS: --host value HTTP address of InfluxDB [$INFLUX_HOST] --skip-verify Skip TLS certificate chain and host name verification [$INFLUX_SKIP_VERIFY] --configs-path value Path to the influx CLI configurations [$INFLUX_CONFIGS_PATH] --active-config value, -c value Config name to use for command [$INFLUX_ACTIVE_CONFIG] --http-debug --token value, -t value Token to authenticate request [$INFLUX_TOKEN] OPTIONS: --org-id value The ID of the organization that owns the bucket [$INFLUX_ORG_ID] --org value, -o value The name of the organization that owns the bucket [$INFLUX_ORG] --bucket-id value The ID of the bucket to delete from [$INFLUX_BUCKET_ID] --bucket value, -b value The name of the bucket to delete from [$INFLUX_BUCKET_NAME] --start value The start time in RFC3339Nano format (ex: '2009-01-02T23:00:00Z') --stop value The stop time in RFC3339Nano format (ex: '2009-01-02T23:00:00Z') --predicate value, -p value sql like predicate string (ex: 'tag1="v1" and (tag2=123)') Error: flag provided but not defined: -DBANDY1 pi@homebridge:~ $
Mein Bucket heißt definitiv "DBANDY1".
Bei der Eingabe von sudo influx -h bekomme ich das:
pi@homebridge:~ $ sudo influx -h NAME: influx - Influx Client USAGE: influx [command] COMMANDS: version Print the influx CLI version write Write points to InfluxDB bucket Bucket management commands completion Generates completion scripts query Execute a Flux query config Config management commands org, organization Organization management commands delete Delete points from InfluxDB user User management commands task Task management commands telegrafs List Telegraf configuration(s). Subcommands manage Telegraf configurations. dashboards List Dashboard(s). export Export existing resources as a template secret Secret management commands v1 InfluxDB v1 management commands auth, authorization Authorization management commands apply Apply a template to manage resources stacks List stack(s) and associated templates. Subcommands manage stacks. template Summarize the provided template bucket-schema Bucket schema management commands ping Check the InfluxDB /health endpoint setup Setup instance with initial user, org, bucket backup Backup database restore Restores a backup directory to InfluxDB remote Remote connection management commands replication Replication stream management commands server-config Display server config help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --help, -h show help pi@homebridge:~ $
Mi leuchtetr das mit dem Zeitbereich durchaus ein, aber bei mir sind es eher falsche Daatenpunkte, welche ich nicht mehr benötige:
Ich möchte ja nur diese einzelnen Datenpunkte löschen:
-
sudo influx delete --token fayAjyR5wxqnnusJHjEJXXXXXXXXXXXXX-6Gv9QxiFgOpdRQw6nahGIN474W75Sr0im9TFt8MKa9aw== --org Andy --DBANDY1 --start 2022-06-20T10:00:00:000Z --stop 2022-06-20T10:10:00.000 --predicate '_measurement="dieReihewowasgeloeschtwerdensoll"' Incorrect Usage: flag provided but not defined: -DBANDY1
Da fehlt --bucket vor DBANDY1
-
sudo influx delete --token fayAjyR5wxqnnusJHjEJXXXXXXXXXXXXX-6Gv9QxiFgOpdRQw6nahGIN474W75Sr0im9TFt8MKa9aw== --org Andy --bucket DBANDY1 --start 1970-01-01T00:00:00Z --stop $(date +"%Y-%m-%dT%H:%M:%SZ") --predicate '_measurement="Drucker_currentday"'
als Beispiel löscht gesamten geloggten Datenpunkt.
Vorher das Loggen des Datenpunktes deaktivieren !
-
@spacerx sagte in InfluxDB 2.0 Measurement löschen:
sudo influx delete --token fayAjyR5wxqnnusJHjEJXXXXXXXXXXXXX-6Gv9QxiFgOpdRQw6nahGIN474W75Sr0im9TFt8MKa9aw== --org Andy --bucket DBANDY1 --start 1970-01-01T00:00:00Z --stop $(date +"%Y-%m-%dT%H:%M:%SZ") --predicate '_measurement="Drucker_currentday"'
Hallo ich habe das loggen des Datenpunkts deaktiviert.
Wenn ich dann Deinen Befehl eingebe bekomme ich folgende Meldung:Error: failed to delete data: 401 Unauthorized: unauthorized access
Wie erlaube ich den Zugriff?
-
@spacerx sagte in InfluxDB 2.0 Measurement löschen:
als Beispiel@spacerx sagte in InfluxDB 2.0 Measurement löschen:
--token fayAjyR5wxqnnusJHjEJXXXXXXXXXXXXX-6Gv9QxiFgOpdRQw6nahGIN474W75Sr0im9TFt8MKa9aw==Hast du den token angepaßt !
-
@glasfaser Ups - sorry
Perfekt es klappt vielen Dank an Euch
-
Danke für den Tipp. Die Datenpunkte sind auch definitiv nicht mehr da, allerdings hat sich das irgendwie nicht positiv auf den Speicherplatz ausgewirkt. Konnte keine Veränderung feststellen.
Da sollte doch eigentlich Speicherplatz frei werden, oder? -
Guten Tag,
ich bin der Anleitung in diesem Beispiel gefolgt und habe den Befehl angepasst nur leider ohne Erfolg
Lösche Datenpunkte vom 11.09.22 9:00 Uhr - 11.09.22 11:00 Uhr
sudo influx delete --token sKJliJreWx9_eYkJ3wiHQAmAvmHoMIIvJgzUUbADTC9LjFv5bgL6RQPt1TGAeHmmDnoQvff5G00LaYSA09T8YQ== --org my-org --bucket iobroker --start 2022-09-11T09:00:00.000Z --stop 2022-09-11T11:00:00.000Z --predicate '_measurement="Netzeinspeisung"'Dieser Befehl wird auch angenommen, nur bekomme ich kein positives oder negatives Feedback und der Fehlerhafte Datenpunkt ist auch noch vorhanden.
Evtl. kann mir jemand weiterhelfen, vielen Dank.
-
@aquin hast du die Browserseite auch mal neu geladen.
-
@aquin Falsche Start- und Stop-Zeit
Im Graph steht 10:00 Uhr= Browserzeit nehme ich an
Deine Query sagt: Z
Z wie Zulutime = UTC + 0 (https://www.timeanddate.com/worldclock/timezone/zulu)
Zur Zeit sind wir aber +2 Stunden UTC
Also muss deine Abfrage lauten: --start 2022-09-11T07:58:00.000Z --stop 2022-09-11T08:02:00.000Z
10:00 Uhr (Browserzeit) plus/mimus 2 Minuten von der UTC (Z) Zeit minus 2 Stunden
-
Danke, für die schnellen Antworten.
- Browser neu geladen, Datenpunkt noch vorhanden
- Befehl angepasst, Datenpunkt noch vorhanden
sudo influx delete --token sKJliJreWx9_eYkJ3wiHQAmAvmHoMIIKJUzUUbADTC9LjFv5bgL6RQPt1TGAeHmmDnoQvff5G00LaYSA09T8YQ== --org my-org --bucket iobroker --start 2022-09-11T07:58:00.000Z --stop 2022-09-11T08:02:00.000Z --predicate '_measurement="Netzeinspeisung"'
Vielleicht noch weitere Ideen