NEWS
Storage Vorhaltezeit in mySQL funktioniert nicht - hat keinen Einfluss
-
Hallo,
ich habe seit einiger Zeit den SQL-Adapter mit mySQL am laufen. Pro Tag schreibe ich ca. 30.000 Sätze.
Alles funktioniert soweit super performant auf dem PI3.
Ich habe als Storage Vorhaltezeit bei allen Datenpunkten 1 Woche eingestellt.
Der Wert hat aber keine Auswirkung. Ein Löschen der alten Sätze findet nicht statt. Aktuell habe ich mehr als 2 Mio Einträge.
Ist das nur mein Problem, oder habt Ihr ähnliche Erfahrungen?
Hat jemand eventuell bereits ein Script zur Reorganisation der Datenbank geschrieben?
Grüße
Thomas
-
@tom57:Hallo,
ich habe seit einiger Zeit den SQL-Adapter mit mySQL am laufen. Pro Tag schreibe ich ca. 30.000 Sätze.
Alles funktioniert soweit super performant auf dem PI3.
Ich habe als Storage Vorhaltezeit bei allen Datenpunkten 1 Woche eingestellt.
Der Wert hat aber keine Auswirkung. Ein Löschen der alten Sätze findet nicht statt. Aktuell habe ich mehr als 2 Mio Einträge.
Ist das nur mein Problem, oder habt Ihr ähnliche Erfahrungen?
Hat jemand eventuell bereits ein Script zur Reorganisation der Datenbank geschrieben?
Grüße
Thomas `
Es kann sein, dass es an dieser Stelle ein Fehler drin ist.Wenn du jetzt die Zeile 33 in die Datei /opt/iobroker/node-modules/iobroker.sql/lib/mysql.js so änderst:
query += " AND ts < " + Math.round(d.getTime() / 1000);
auf
query += " AND ts < " + d.getTime();
Nach dem sql-Adapter-Restart sollte es besser aussehen.
-
Update:
Die Änderung funktioniert. Beim Neustart des SQL-Adapters werden die alten Daten gelöscht.
Wann läuft eigentlich der Datenreorg im laufenden Betrieb ? Einmal am Tag um Mitternacht?
Lästig sind auch die Duplicate Key Fehler im Log.
Da der Primary Key Millisekunden vorsieht, aber auf ganze Sekunden gerundet wird, habe ich pro Tag ca. 20-30 Fehlermeldungen im Log.
Lösungsmöglichkeiten:
(1) Fehlermeldung abfangen und REPLACE anstelle von INSERT
(2) Den Zeitstempel auf die Millisekunde genau machen
(3) Die Fehlermeldung im Log unterdrücken ??
-
Hier weiter zu duplicate key: