sql - remove - influxdb drop index




Können Sie Daten aus influxdb löschen? (4)

Da InfluxDB beim Löschen etwas schmerzhaft ist, verwenden wir ein Schema mit einem booleschen Feld namens "ForUse", das beim Posten über das Leitungsprotokoll (v0.9) folgendermaßen aussieht:

your_measurement,your_tag=foo ForUse=TRUE,value=123.5 1262304000000000000

Sie können dieselbe Messung, denselben Tag-Schlüssel und dieselbe Uhrzeit mit den von Ihnen gesendeten Feldschlüsseln überschreiben. Deshalb "löschen" Sie, indem Sie "ForUse" auf "false" setzen und die Datenbankgröße durch die Aufbewahrungsrichtlinie kontrolliert werden.

Da das Überschreiben nahtlos erfolgt, können Sie das Schema auch nachträglich hinzufügen. Noice

Wie löscht man Daten von influxdb?

Die Dokumentation zeigt, dass es so einfach sein sollte:

delete from foo where time < now() -1h

Aus irgendeinem Grund lehnt influxdb meine Löschanweisungen ab und sagt "Löschabfragen dürfen keine Klausel enthalten, die keine Zeitangabe enthält".

select * from bootstrap where duration > 1000 and time > 14041409940s and time < now()

Ich möchte diese 5 Einträge löschen, deren Dauer> 1000 Sekunden ist

Dies sollte eine gültige SQL-Anweisung sein, die jedoch fehlschlägt

Keine dieser Löschanweisungen funktioniert auch

delete from bootstrap where duration > 3000000"

delete from bootstrap where duration > 300000"

delete from bootstrap where time = 1404140994043"

delete from bootstrap where duration > 300000 and time > 1404141054508 "

delete from bootstrap where duration > 300000 and time > 1404141054508s "

delete from bootstrap where time > 1404141054508s and duration > 300000 "

delete from bootstrap where duration > 30000 and time > 1s"

Referenz der Dokumentation

http://influxdb.com/docs/v0.8/api/query_language.html

Aktualisieren

Zusätzliche Fragen

delete from bootstrap where time > 1404141416824 and duration > 3000;
delete sequence_number from bootstrap where time > 1s and duration > 1000;

Vielleicht ist das ein Fehler?

https://github.com/influxdb/influxdb/issues/975
https://github.com/influxdb/influxdb/issues/84


Es scheint, dass Sie dies in influxdb 0.9 tun können. Hier ist zum Beispiel eine Abfrage, die mir gerade gelungen ist:

DROP SERIES FROM temperature WHERE machine='zagbar'

(Mit freundlicher Genehmigung von @MuratCorlu werde ich meinen früheren Kommentar als Antwort erneut veröffentlichen ...)


Ich füge diese Befehle als Referenz hinzu, um die Aufbewahrung im InfluxDB-Container in kubernetes k8s zu ändern. wget wird verwendet, da der Container keine CLI für curl und influx hat

wget 'localhost:8086/query?pretty=true' --post-data="db=k8s;q=ALTER RETENTION POLICY \"default\" on \"k8s\" duration 5h shard duration 4h default" -O-

Nachprüfung

wget 'localhost:8086/query?pretty=true' --post-data="db=k8s;q=SHOW RETENTION POLICIES" -O-

Mit dem Zustrom können Sie nur nach Zeit löschen

Zum Beispiel sind die folgenden ungültig:

#Wrong
DELETE FROM foo WHERE time < '2014-06-30' and duration > 1000 #Can't delete if where clause has non time entity

So konnte ich die Daten löschen

DELETE FROM foo WHERE time > '2014-06-30' and time < '2014-06-30 15:16:01'

Update: das funktionierte beim Zustrom 8. Angeblich funktioniert es beim Zustrom 9 nicht







influxdb