Export-Jobs

Export-Jobs dienen zum (automatisierten) Export von Daten in eine Staging-Datenbank und/oder Dateien.

Parameter von Export-Jobs

(!) sind notwendig.

  • Name (!): Eindeutiger Bezeichner des Export-Jobs.
  • Beschreibung: Kurze Beschreibung eines Export-Jobs
  • Notizen: Längere Dokumentation zu diesem Export-Job.
  • Vorlage (!): Die Vorlage, die die zu exportierenden Zeitreihen inkludiert.
  • Exportziel (!): Das konfigurierte Exportziel, in das die abgerufenen Daten exportiert werden sollen.
  • Startzeit(!): Wann die erste Ausführung dieses Jobs stattfinden soll. Wiederholungen passieren dann abhängig von der eingestellten Periode.
  • Exportperiode(!): In diesem Intervall wird der Export-Job erneut ausgeführt und die seit dem letzten Mal angesammelten Daten exportiert. Falls auf "Adhoc" gestellt, soll dieser Job nie automatisiert ausgeführt werden.
  • Zeitzone(!): Die Quelldaten-Zeitstempel werden in diese Zeitzone umgerechnet.
  • Benachrichtigungs-E-Mails:: Wohin die Statusreports zu diesem Job gesendet werden sollen. Bis zu 3 können zugewiesen werden. Duplikate werden ignoriert.
  • Entwurf-Flag (!): Gibt an, ob der Export-Job noch ein Entwurf ist und demnach noch nicht von Admins aktiviert werden soll.
  • Aktiv-Flag (!): Gibt an, ob der automatisierte Job aktiviert ist und Daten exportiert. Wird in farblichem Text in der Detailansicht angezeigt. AdHoc-Jobs können nicht gestartet werden, wenn sie deaktiviert sind.
  • HealthCheck-Flag (!): Gibt an, ob der Status dieses Jobs Teil des DDS-Healthchecks ist (für wichtige Exporte). Nur Systemadministratoren dürfen diesen Wert anpassen.

Neuversuchs-Optionen

Diese Parameter beschreiben das Verhalten des Export-Jobs im Falle eines fehlgeschlagenen Exportversuchs. Alle Zeitwerte sind in Sekunden.

  • Max. Versuche: Wie oft ein Export maximal durchgeführt werden darf, bevor er als fehlgeschlagen gilt.
  • Max. Dauer: Wenn seit der Initialisierung des ersten Exportversuchs mehr Zeit vergangen ist, als hier eingetragen (in Sekunden), gilt er ebenso als fehlgeschlagen.
  • Versuchsintervall: Für jeden Exportversuch muss mindestens diese Zeitspanne mal der Anzahl der Versuche seit dem Start des Export-Jobs vergangen sein, bevor er gestartet wird.
Versuchsintervall näher erklärt

Beispiel: Versuchsintervall von 300 Sekunden.

Im 1. Versuch gibt es ein Zugriffsproblem für eine der Varietäten im Export, wodurch der Job nach 60 Sekunden abgebrochen wird. Da erst 60 Sekunden vergangen sind, wartet der Scheduler noch 240 Sekunden, bis er den zweiten Versuch startet.

Im 2. Versuch bricht der Export wieder ab, diesmal nach einer halben Stunde. Da mehr als 600 Sekunden seit der Initialisierung vergangen sind (nämlich 300 + 1800 Sekunden, oder 35 Minuten), wird der 3. Versuch sofort gescheduled.

Diese Mechanik soll verhindern, dass der Scheduler zu oft hintereinander einen neuen Versuch startet, der aufgrund des existierenden Problems mit großer Wahrscheinlichkeit genauso nicht funktionieren wird wie der vorherige.

Exportzeitraum

Die konfigurierte Periode gibt an, welcher Zeitraum exportiert werden soll. Dabei wird bei automatisierten Jobs immer die (aus Sicht des Ausführungsdatums) letzte volle Einheit der angegebenen Periode exportiert.

PeriodeExportbeginnExportende
viertelstündlichLetzte Viertelstunde :00.000Letzte Viertelstunde* :59.999
stündlichLetzte Stunde :00.000Letzte Stunde :59.999
täglichVortag 00:00:00.000Vortag 23:59:59.999
wöchentlichMontag 00:00:00.000 der VorwocheSonntag 23:59:59.999 der Vorwoche
monatlichVormonats-Erster 00:00:00.000Vormonats-Letzter 23:59:59.999
quartalsweiseerster Tag des vorigen Quartals 00:00letzter Tag des vorigen Quartals 23:59
jährlich01.01. 00:00:000 des Vorjahres31.12. 23:59.999 des Vorjahres

Ein quartalsweiser Job, der am 23.05. läuft, exportiert alle Daten aus Q1. Quartale sind dabei immer:

  • Q1 01.01. – 31.03.
  • Q2 01.04. – 30.06.
  • Q3 01.07. – 30.09.
  • Q4 01.10. – 31.12.

Für letzte Viertelstunde wird immer an Minute 0, 15, 30 oder 45 angesetzt. Beispiel: Ein Job der um 22:08 läuft, exportiert die Daten von 21:45.000 bis 21:59.999

Export-Vorgang

Es gibt 2 Möglichkeiten zum Durchführen eines Export-Jobs.

Automatisierter Export

Aktivierte automatisierte Jobs werden vom Job-Scheduler automatisch zum konfigurierten Startzeitpunkt gestartet.

Dabei werden alle in der darunterliegenden Vorlage angegebenen Bausteine berücksichtigt, welche wiederum Zeitreihen beinhalten. Für alle diese Zeitreihen wird eine Abfrage an die Quelldatenbanken gestartet für den in Exportzeitraum angegebenen Zeitraum.

Dabei wird auf Zeitreihenbasis vorgegangen. Wenn eine oder mehrere der zugehörigen Quelldatenbanken nicht erreichbar sein sollten, wird das als Fehler registriert und dementsprechend wird ein Neuversuch gestartet, bis entweder Zeit- oder Versuchslimit überschritten sind.

Die Daten werden dann in das konfigurierte Exportziel geschrieben. Dabei handelt es sich entweder um eine temporäre Staging-Datenbank oder ein konfiguriertes Verzeichnis im var/dds/spool-Ordner. Siehe die Konzeptseite für Exportziele für mehr Informationen.

Unabhängig davon, ob der Export erfolgreich war oder nicht, wird an die konfigurierten Benachrichtigungs-E-Mail-Adressen (falls vorhanden) ein Statusreport geschickt. Im Falle eines erfolgreichen Exports in ein Dateiziel findet sich darin dann ein Download-Link zur Datei, welche standardmäßig 2 Wochen lang gespeichert wird (Die Dauer ist konfigurierbar). Nur eingeloggte Benutzer mit dem entsprechenden Recht dürfen über diesen Link die Zip-Datei herunterladen.

In der Staging-Datenbank gibt es kein vorgegebenes Verfalldatum für die exportierten Werte.

Adhoc-Export

Vom Administrator manuell in Auftrag gegebener Datenexport. Jeder definierte Export-Job kann adhoc ausgeführt werden, indem ein Export-Zeitbereich manuell angegeben wird. Adhoc-Jobs werden dann in den Scheduler gegeben, welcher den Job wie jeden anderen automatisiert gestarteten Job behandelt.

Der Zeitbereich kann dabei beliebig sein, muss also nicht eines der normierten Intervalle betragen.

Im Gegensatz zum automatisierten Export wird dem Benutzer direkt nach dem Starten des Jobs in der GUI ein Status-Bericht in der Form eines Dialogs angezeigt inkl. einer Log-Anzeige und einem Abbrechen-Button.

Alles andere ist analog zum automatisierten Export (E-Mail etc.)

Resultierende Dateien

Wenn das Exportziel ein dateibasiertes ist, werden die folgenden Dateien auf diesem angelegt:

  • Die Exportdaten selbst in einem Tabellendokument (typischerweise CSV), welches die eigentlichen Datenwerte enthält.
  • Metadaten der exportierten Datenpunkte und -varietäten, jeweils einmal in CSV und YAML-Format.

Das Format des Exportdaten-CSVs hängt dabei von den CSV-Exporteinstellungen des Exportziels ab.

In den Metadaten werden nur jene inkludiert, die das im Export-Flag konfiguriert haben.

Wenn sie Varietätenbezeichnungen definiert haben, werden diese auch in den Metadaten angezeigt.

Berechtigungen

Standardmäßig sind die folgenden Berechtigungen im Kontext von Export-Jobs vorgesehen:

BerechtigungBerechtigte User
Erstellen von JobsAlle
Bearbeiten/Löschen von JobsAutor des Jobs und Admins
Aktivieren/Deaktivieren von JobsAutor des Jobs und Admins
Adhoc-Ausführen von JobsAutor des Jobs und Admins

Zustände eines Job-Durchlaufs

Statusübergänge

Jobdurchläufe können via Export-Job automatisch, AdHoc oder aus dem Preview heraus gestartet werden. Die letztere Art wird nicht in der Datenbank persistiert.

Jeder Jobdurchlauf startet nach dem Erstellen im Zustand Pending (Anstehend) und wartet nun darauf, dass er gestartet wird.

Sobald der Jobdurchlauf gestartet wird, wird dessen Zustand auf Running (Laufend) gesetzt. In diesem Zustand bleibt er, bis ein Fehler auftritt, der Prozess abgebrochen wird oder die Daten vollständig abgerufen und verarbeitet wurden.

Sollte kein Fehler auftreten und alle Daten wurden abgerufen, werden die Ergebnisse in das Exportziel geschrieben und eine Erfolgsmeldung per Mail gesendet. In dem Fall geht der Prozess in den Zustand Success (Erfolg).

Im Fehlerfall gibt es einen Mechanismus für Retry (Wiederholung). Nach einem konfigurierbaren Intervall wird erneut versucht, bis entweder die maximale Retry-Anzahl oder die maximale Dauer überschritten ist. In so einem Fall ist der Run Failed (endgültig fehlerhaft).

Wenn ein Benutzer eingreift und den Durchlauf abbricht (Cancel) und dies noch eine Auswirkung auf ihn hat (d.h. wirklich abgebrochen wurde), hat der Durchlauf danach den Zustand "Cancelled" (Abgebrochen). In so einem Fall wird der Job ebenso nicht mehr neu versucht bis zum nächsten Intervall.

Nach 14 Tagen (durch Admins konfigurierbar) werden die exportierten Daten aus den Export-Verzeichnissen entfernt. Die Staging-Datenbanken werden von der DDS nach dem Export nicht mehr weiter modifiziert, es gibt also auch keine Löschmechanik.