EMCS v7.8

3. Juni 2020

 

Am 2. Juni 2020 wurde EMCS in der Version 7.8 freigegeben.

Das Datenmodell hat sich mit dieser Release geändert, EMCS verwendet nun das Datenmodell in der Version 67.

Diese Release enthält wesentliche Neuerungen, sowohl was die Bedeutung als auch den Umfang betrifft.

Verbesserter Umgang mit Sekundenwerten

EMCS kann nun Sekundenwerte besser verwalten und auswerten. Das betrifft Zeit Ein- und Ausgaben und die Zeitnavigation in den Auswertungen, im Messwert-Browser und im Messwert-Editor:

  • Sekundengenaue Messwertsuche
  • Zeitstempel-Eingabe im Sekundenauflösung
  • Sekundengenaues Bearbeiten von Messwerten im Editor

Verwalten von Millisekunden-Zeitstempeln

EMCS kann nun Zeitstempel bis zu einer Genauigkeit von 1 Millisekunde verwalten. Wir sind bei der Umsetzung des oben genannten Punktes also gleich einen Schritt weiter gegangen und haben die Granularität der Zeitstempel auf Millisekunden erweitert. Damit sollte EMCS bereits auch für die Zukunft gut gerüstet sein (In der Visualisierung ist aber noch nicht alles auf diese feine zeitliche Auflösung vorbereitet!)

Flexiblere Definition des Datenbank-Zeitstempels

Der EMCS Administrator kann nun festlegen, wie sich Messwert Zeitstempel und Datenbank-Zeitstempel zueinander verhalten. (Zur Erklärung, falls das Konzept nicht mehr allen bekannt ist: EMCS kann ja Messwerte mit Zeitstempeln unterschiedlicher Länge und Abstand verarbeiten, auch innerhalb einer einzigen Zeitreihe. Der "Datenbank-Zeitstempel" ist der Zeitpunkt, der zu einem Messwert in der Datenbank gespeichert wird. Zusammen mit der Zeitstempel-Länge und dem -Abstand, die ebenfalls pro Messwert, üblicherweise aber pro Zeitreihe oder pro Aggregation gespeichert werden, ergibt sich der eigentliche Messwert-Zeitstempel in EMCS)

Der EMCS Administrator kann nun wahlweise eine der folgenden Varianten einstellen:

  1. Datenbank-Zeitstempel liegt unmittelbar vor dem Messwert Zeitstempel
  2. Datenbank-Zeitstempel liegt am Beginn des Messwert Zeitstempels
  3. Datenbank-Zeitstempel liegt am Ende des Messwert-Zeitstempels
  4. Datenbank-Zeitstempel liegt unmittelbar nach dem Messwert-Zeitstempel

Diese Definition ist auf Aggregationsebene (für alle Zeitreihen dieser Aggregation), aber auch auf Zeitreihenebene (für genau diese Zeitreihe) möglich.

Bisher war die Behandlung der Datenbank-Zeitstempel von der konfigurierten Aggregationsmethode abhängig (atomar -> Variante 2, aggregiert -> Variante 4). Das ist als Default immer noch so. Neu ist, dass der EMCS Administrator bei Bedarf diese Einstellung nun explizit pro Aggregation und sogar pro Zeitreihe festlegen kann. Die Einstellung ist im Admin UI für "Aggregationen" und für "Zeitreihen" möglich. Es gibt dazu einen umfangreiche Hilfetext und es werden Beispiel-Zeitstempel ausgegeben, um den Administrator bestmöglich zu unterstützen.

In der Regel ist der Datenbank-Zeitstemepl ein internes Detail und es für den Anwender nicht relevant, wie der Datenbank-Zeitstempel relativ zum Messwert-Zeitstempel liegt. Nur für den Fall, dass auf die in EMCS gespeichertern Messwerte über einen direkten SQL Datenbankzugriff an EMCS vorbei zugegriffen wird, kann die Konfiguration der Bedeutung des Datenbank-Zeitstempels relevant sein.

Interpretation von Zeitstempeln beim generischen Import

Auch beim generischen Import ist es nun möglich, die Bedeutung des Zeitstempels im Import-File (der dort in der Regel ja nur als Zeitpunkt angegeben ist, z.B. als "03.06.2020 12:10:05") in der Import-Konfiguration explizit zu definieren. Dazu gibt es eine neue Factory-Methode für den Messwert-Zeitstempel, der man die gewünschte Behandlung des Zeitstempels aus dem Import-File mitteilen kann. Diese Factory-Methode kann in der Formatdefinition eines generischen Import-Formats verwendet werden.

Beispiel: Angenommen, es sollen Messwerte als "5-Sekunden-Werte" importiert werden. Bei dem oben angegebenen Beispiel-Zeitstempel gibt es mehrere Interpretationsmöglichkeiten, wobei zumindest zwei praktisch möglich sind:

  1. Zeitpunkt im Import-File liegt am Beginn des Messwert-Zeitstempels ("LI" = "left inside")
    -> Zeitstempel des Messwerts (in Millisekunden-Auflösung): [03.06.2020 12:10:05.000;03.06.2020 12:10:09.999]
  2. Zeitpunkt im Import-File liegt unmittelbar nach dem Messwert-Zeitstempel ("RO" = "right outside")
    -> Zeitstempel des Messwerts (in Millisekunden-Auflösung): [03.06.2020 12:10:00.000;03.06.2020 12:10:04.999]

Beide Varianten sind je nach Anwendungsfall durchaus sinnvoll. Es liegt daher beim EMCS Administrator, bei der Erstellung des generischen Import-Formats die richtige Interpretation zu wählen.

Die anderen Zeitstempel-Factory-Methoden stehen für den Import natürlich weiterhin zur Verfügung und interpretieren den übergebenen Zeitpunkt wie bisher implizit über die Konfiguration der Zeitreihe.

Eindeutige Definition der Zuordnung von Zeitpunkt zu Zeitstempel bei Zeitstempeln mit mehr als einer Zeitdauer-Einheit

Auch das ist ein Spezialfall: Ein Zeitstempel in EMCS hat eine Länge, die sich aus einer Einheit (z.B. "Stunde") und einer Anzahl (z.B. "1") zusammensetzt. Es gibt also Zeitstempel, die z.B. "6 Stunden" lang sein können. Die Ausrichtung am Zeitstrahl orientiert sich dabei an der Einheit (ein Zeitstempel der Einheit "Stunde" kann nur an vollen Stunden beginnen oder enden). Wenn so ein Zeitstempel mehr als eine Zeitdauereinheit lang ist, lässt sich ein Zeitpunkt (z.B. 10:54:17) aber auf mehrere mögliche Zeitstempel abbilden. Die Abbildung ist nicht eindeutig.

Bisher hat EMCS in so einem Fall stillschweigend immer den ältest möglichen Zeitstempel erzeugt (aus 03.06.2020 10:54:17 wird also der 6-Stunden Zeitstempel [03.06.2020 05:00:00;03.06.2020 11:00:00). Ab EMCS v7.8 kann der EMCS Administrator nun pro Aggregation und pro Zeitreihe festlegen, welcher Zeitstempel aus einem Zeitpunkt erzeugt wird.

So kann der Administrator festlegen, dass für den oben angegebenen Beispiel-Zeitpunkt der 6-Stunden-Zeitstempel [03.06.2020 06:00:00;03.06.2020 12:00:00) erzeugt wird (also am Vierteltag ausgerichtet wird).

Die Einstellung ist im Admin UI für "Aggregationen" und für "Zeitreihen" möglich. Auch hier gibt es einen umfangreiche Hilfetext und es werden ebenfalls Beispiel-Zeitstempel ausgegeben, die dem Administrator die Arbeit erleichtern sollen. Das ist jedoch nur relevant, falls der Zeitstempel länger als eine Zeitdauereinheit ist (oder falls der Abstand definiert und länger als eine Zeitstempeleinheit ist).

Abbruch eines laufenden Datenimports über den Import-Wizard

Ein laufender Datenimport kann im Import-Wizard nun abgebrochen werden. Das kann wichtig sein, falls man eine große Importdatei importiert, aber z.B. ein falsches Import-Format gewählt hat. Statt abzuwarten, bis alles mit unzähligen Fehlern abgearbeitet wurde, kann man nun auf den Button "Import abbrechen" klicken und der Import wird gestoppt. Je nach gewählter Fehlerbehandlung werden bis zu diesem Zeitpunkt bereits importierte Werte verworfen oder in die Datenbank übernommen.

Commandline-Import mit Rückmeldungen

Das Import-Utility für die Commandline bietet nun ebenfalls die Möglichkeit, den Fortschritt des Imports laufend anzuzeigen. Das funktioniert sowohl bei synchronem als auch bei asynchronem Import. Zuständig dafür sind die neuen Optionen --follow und --progress

Beispiel:

$ emcs-import.sh -C MvTestImportCSV_LI -F GENERIC --dataFile ~/fourier8.csv --progress