IPS 4.2 vom 17.5.17 - Frage zur Anzeige der Archiv Variablen erster Wert

Moin,

ich habe mittels Script AC_DeleteVariableData für einen Zeitraum Variablen entfernt und danach diese Variablen neu reaggregiert. Bislang lautete die Anzeige in der Spalte erster Wert 01.04.2017. Da der Zeitraum bis zum 20.05.2017 gelöscht wurde, müsste doch nun als erster Wert der 21.05.2017 erscheinen oder? Bei mir erscheint weiterhin der 01.04.2017. Lass ich mir den Tag im Archiv anzeigen dann ist kein Eintrag vorhanden.

Bislang habe ich dies für 3 Variablen durchgeführt und der Effekt tritt bei allen Variablen auf.

Gruß
Hans

Hallo Hans,

das sollte eigentlich funktionieren. Ich habe das gerade auch noch einmal getestet.

Ich habe allerdings entdeckt, dass die Ansicht im Archiv nach der Reaggregation nicht aktualisiert wird. Vielleicht wird die Zeit bei dir einfach nur nicht aktualisiert angezeigt? Ist es korrekt, wenn du das Archiv schließt und neu öffnest?

Hallo Dr. Niels,

diesen Effekt hatte ich auch beobachtet aber leider sind die Daten auch danach noch falsch. Auch ein IPS Neustart bringt keine Besserung.

Von 4 Variablen für die ich die Zeiträume gelöscht habe war nur bei einer Variablen die Anzeige korrekt. Dort wurde dann auch die Uhrzeit mit angezeigt was bei allen anderen Variablen nicht der Fall ist. Dort befindet sich unter Erster Wert nur das Datum während bei Letzter Wert immer Datum und Uhrzeit angezeigt werden. Vielleicht ist diese Info noch hilfreich :slight_smile:

Gruß
Hans

Hallo Dr. Niels,

ich habe jetzt einen Zeitraum einer Variablen über die Konsole gelöscht, die Reaggregation gestartet, das Archiv geschlossen und neu geöffnet und finde folgendes Ergebnis vor, welches aussagt, dass der letzte Wert vor dem 1. Wert liegt. Bei der Reaggregation kann man erkennen, dass im Mai 60 Datensätze und im Juni 1348 Sätze verarbeitet worden sind. Das stimmt mit den Dateien überein. Die beiden Dateien habe ich überprüft und kann keinen Fehler feststellen.

Ruft man nun die Anzeige der Variablen in der Konsole auf, so werden die Daten vom 1.6.2017 angezeigt während der vorherige Tag 31.5.2017 leer bleibt, obwohl die 60 Datensätze den Tag von 22:00:10 bis 23:58:10 abbilden.

Var16950_2017-06-01.PNG

Var16950_2017-05-31.PNG

Dies könnte z. B. darin liegen, dass die Filterfunktion auf das Feld Erster Wert 1.6.2017 zugreift und von daher gar nicht erst versucht weitere Daten zu finden, um Zeit zu sparen. In IPSView werden die Werte nämlich angezeigt :slight_smile:

Desweiteren konnte ich reproduzieren, dass wenn man einen Zeitraum löscht der Wert Erster Wert nicht entsprechend angepasst wird. In meinem Beispiel handelte es sich um eine Variable die Daten vom 1.6.17 bis heute 25.6.17 enthielt. Gelöscht habe ich über die Konsole den Zeitraum 1.6. bis 5.6.17. Die Reaggregation hat funktioniert aber das Datum Erster Wert blieb auf dem 1.6.17.

Ich hoffe, dass dies bei der Fehlersuche hilft :wink:

Gruß
Hans

Hallo Hans,
danke für das ausführliche Feedback!
Zu deinem ersten Beispiel: Sollten die Daten vom 31.5. gelöscht werden und blieben noch in der Datei? Oder sollten die gar nicht gelöscht werden und der Zeitstempel für den ersten Wert wird falsch gesetzt?
Ich kann mir gut vorstellen, dass die Anzeige der Variablen die Anzeige auf Basis des ersten Wertes filtert, war an der Stelle vom System allerdings noch nicht unterwegs, daher kann ich es weder bestätigen noch verneinen. Aber ich bin aktuell an der Archive Control aktiv, also kann ich da mehr zu sagen.
Eigentlich sollte das alles klappen, auch vor meinen Anpassungen. Es wird geprüft, ob der Anfang der gelöschten Daten vor dem ersten Wert liegt. Wenn ja, dann wird der entsprechende Zeitstempel überschrieben und direkt hinter die Endzeit des Löschintervalls gesetzt.
Auch wenn ich die Probleme nicht direkt gesehen habe, so könnten sie durch meine Überarbeitung der Archive Control schon gefixt sein. Wenn es von deiner Seite her nicht kritisch ist, würde ich vorschlagen, dass wir warten bis die Überarbeitung veröffentlicht wird und du es dann noch einmal probierst. Das könnte allerdings noch ein paar Wochen dauern.

Moin Dr. Niels,

ja, der Mai hätte komplett gelöscht sein müssen, da ich 01.05.2017 00:00:00 bis 31.05.2017 23:59:59 als Zeitspanne eingegeben hatte (gerade nochmals probiert).

Ich habe das auch nur vermutet, da man vielleicht Zeit sparen wollte. Wir haben früher ähnliche Situationen dadurch ausgeglichen, dass wir nachts einen Batchlauf durchgeführt haben, der dann aus den Rohdaten alle Eckdaten wieder neu aufgebaut hat. Aber das waren andere Rechner und Zeiten aber die Probleme mit solchen Konstruktionen sind geblieben :slight_smile:

Zeitkritisch ist das für mich überhaupt nicht - ich werde einfach bei diesen wenigen Variablen, wo die zurückliegenden Werte eigentlich uninteressant sind, keine Löschungen vornehmen. Solltest du zufällig ein php-Script schreiben, welches die Anfangs- und Endwerte setzt, könnte ich das bei mir gerne durchlaufen lassen.

Hilfreich wäre beim Löschen einer Zeitspanne vielleicht noch, dass nicht nur die Meldung der Löschung erscheint sondern im Meldungsfenster auch noch die Anzahl der gelöschen Datensätze angezeigt wird (analog zur Reaggregation):

Gruß
Hans

Hallo Dr. Niels,

ich bin in meiner Entwicklungsumgebung nun auf 4.3. Die o. g. Effekte treten jedoch weiterhin auf. Auch kann man beim Löschen leider nicht erkennen, wieviele Sätze entfernt worden sind.

Ist an diesem Problem gearbeitet worden oder kommt das erst noch?

Gruß
Hans

In 4.3 wird das neue Archiv bereits verwendet. Ich werde mich da heute noch einmal ransetzen und versuchen deine Fehler nachzustellen. Das sollte so nicht sein…

Hallo Hans,

ich habe nochmal zwei neue Tests zu dem Thema geschrieben, konnte deine Fehler aber leider nicht reproduzieren. Sind eigentlich beide genannten Probleme noch vorhanden, also sowohl die fehlende Aktualisierung des ersten Zeitpunktes als auch die übrigbleibenden Datensätze? Aber deinen Vorschlag zur Rückgabe der gelöschten Datensets habe ich eingebaut. Das sollte also bald kommen.

Hast du vielleicht ein Datenset für mich, welches die Probleme nachstellt? Eventuell kannst du ja beim nächsten mal, wenn du den Fehler vermutest, vorher die dazugehörigen Rohdaten der Variable kopieren und die Variablendaten, also alles was AC_GetAggregationVariables — IP-Symcon :: Automatisierungssoftware so ausspuckt, notieren. Wenn der Fehler dann tatsächlich auftritt, kannst du mir die Daten zusammen mit deinem Löschaufruf schicken und ich probiere das bei mir aus. Das wäre wahnsinnig hilfreich, da ich momentan leider keinen Ansatz habe, warum es bei dir nicht läuft.

Moin Dr. Niels,

ich habe mich jetzt auf eine der 3 betroffenen Variablen mit der ID 16950 beschränkt.

So wird diese Variable angezeigt

und dies die dazugehörigen Daten.

  array(9) {
    ["FirstTime"]=>
    int(1493589600)
    ["LastTime"]=>
    int(1491991258)
    ["RecordCount"]=>
    int(1408)
    ["RecordSize"]=>
    int(23003)
    ["IsValid"]=>
    bool(true)
    ["VariableID"]=>
    int(16950)
    ["AggregationType"]=>
    int(0)
    ["AggregationVisible"]=>
    bool(true)
    ["AggregationActive"]=>
    bool(true)
  }

FirstTime 1493589600 = 01.05.2017 - 00:00:00 und LastTime 1491991258 =12.04.2017 - 12:00:58. Damit würde die Anzeige letzter Wert stimmen.

Nun zu den physischen Daten. Im Verzeichnis 04 findet sich kein Eintrag der Variablen. In 05 ist ein Eintrag mit 60 Werten allerdings für den Monat 06 und im Verzeichnis 06 ist eine Datei mit 1308 Werten, so dass die Summe 1408 Zeilen stimmt.

1. Wert im Monat 05: 01.06.2017 - 00:00:10
letzter Wert in  05: 01.06.2017 - 01:58:10
insgesamt 60 Werte

1. Wert im Monat 06: 01.06.2017 - 02:00:10
letzter Wert in  06: 03.06.2017 - 20:39:31
insgesamt 1308 Werte

Ich habe daraufhin testweise die falschen Werte aus 05 in die Tabelle von 06 via Excel übertragen und 05 gelöscht. Nach der Reaggregation blieb die Anzeige unverändert mit dem letzten Wert 12.04.2017 - 12:00:58.

Daraufhin habe ich die Variable gelöscht, das Archiv beendet, die Variable neu aktiviert und das Archiv geöffnet. Obwohl korrekterweise Anzahl Datensätze 0 angezeigt wurde, stand das Datum letzter Wert wiederum auf 12.04.2017 - 12:00:58. Dies ist auf jeden Fall erstaunlich. Dies änderte sich auch nicht nachdem ich die 1408 Werte in das Verzeichnis 06 kopiert und nochmals reaggregiert habe. Die Anzahl der Zeilen wurde jedoch mit 1408 korrekt dargestellt.

Ich denke, dass es keinen Sinn macht dieses Problem weiter zu verfolgen. Da die physische Struktur der Daten falsch ist kann man eigentlich kein korrektes Ergebnis erwarten. Dies wäre m. E. nur möglich, wenn man bei der Reaggregation alle physichen Dateien von Grund auf neu einlesen und auswerten würde. Nimmt man hingegen - um vernünftigerweise Laufzeit zu sparen - einen Zeitstempel als Basis, so kann das nicht mehr funktionieren.

Zwischenzeitlich habe ich die Variable gelöscht und die Aufzeichnung ohne alte Daten komplett neu gestartet. Nun stimmen alle neuen Werte :slight_smile:

Gruß
Hans