Wie der Titel schon sagt, möchte ich einen Datenpunkt der nur zur Fehlerprotokollierung benötigt wird,
automatisch alle paar Tage löschen.
Im Falle eines Fehlers benötige ich nur die jeweils letzten Tage. Alle anderen können weg.
Unter "Tips&Tricks" habe ich das Script gefunden, "Alte Zeitreihendaten löschen".
Jedoch bezieht sich das auf alle Datenreihen.
Das mit dem cronjob und dem Einfügen in die ccu-historian.config krieg ich hin.
Aber wie muß die Syntax aussehen, wenn man nur EINE bestimme Datenreihe bereinigen möchte ?
Datenpunkte einer Datenreihe älter als x-Tage automatisch löschen
Moderator: Co-Administratoren
-
- Beiträge: 1767
- Registriert: 03.11.2010, 10:25
- System: CCU
- Wohnort: Aachen
- Hat sich bedankt: 58 Mal
- Danksagung erhalten: 253 Mal
- Kontaktdaten:
Re: Datenpunkte einer Datenreihe älter als x-Tage automatisch löschen
Das müsste etwas in dieser Richtung sein:
Code: Alles auswählen
// Konfiguration
def daysToKeep = 5
def dpID="ABC.ABC000:0.PARAM"
def testRun = true // nach dem Testen auf false setzen
// Skript
println "Alte Zeitreihendaten werden gelöscht:"
def deleteDate=new Date()-daysToKeep
println "Löschdatum: ${deleteDate.format("dd.MM.YYYY")}"
def dp=database.getDataPoint(new DataPointIdentifier(dpID))
def cnt
if (testRun) {
cnt=database.getCount(dp, null, deleteDate)
} else {
cnt=database.deleteTimeSeries(dp, null, deleteDate)
}
println "$dp.displayName: $cnt Einträge"
-
- Beiträge: 183
- Registriert: 27.11.2015, 09:51
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 8 Mal
Re: Datenpunkte einer Datenreihe älter als x-Tage automatisch löschen
Vielen Dank für die Antwort.
Ich habe in dem Script
def dp=database.getDataPoint(new DataPointIdentifier(dpID))
durch
def dp=database.getDataPoint(dpID)
ersetzt.
Dann funktionierte es, wie ich es mir vorgstellt habe.
Also:
Gruß
Andreas
Ich habe in dem Script
def dp=database.getDataPoint(new DataPointIdentifier(dpID))
durch
def dp=database.getDataPoint(dpID)
ersetzt.
Dann funktionierte es, wie ich es mir vorgstellt habe.
Also:
Code: Alles auswählen
// Konfiguration
def daysToKeep = <Tage>
def dpID= <ID>
def testRun = true // nach dem Testen auf false setzen
// Skript
println "Alte Zeitreihendaten werden gelöscht:"
def deleteDate=new Date()-daysToKeep
println "Löschdatum: ${deleteDate.format("dd.MM.YYYY")}"
def dp=database.getDataPoint(dpID)
def cnt
if (testRun) {
cnt=database.getCount(dp, null, deleteDate)
} else {
cnt=database.deleteTimeSeries(dp, null, deleteDate)
}
println "$dp.displayName: $cnt Einträge"
Andreas