Wir organisiert man am besten seine Pipelines ?
-
eine Pipeline mit vielen Steps ?
-
mehrere Pipelines mit jeweils wenigen Steps ?
Eine pauschale Antwort gibt es nicht, wir müssen mehrere Dinge beachten
-
Partitionierung - die Pipeline soll im Normalfall alle Mandanten mit allen Jahren transportieren, im Einzelfall aber ggf. nur einen Mandanten mit einem Jahr für ein schnelles Datenupdate
-
bei großen Datenmengen soll die Pipeline ggf. täglich nur den aktuellen Monat holen, am Wochenende das ganze Jahr
-
Man muss die Partitionierung ggf. in mehreren Steps einstellen (Auswahl Mandant und Jahr)
-
Man kann einzelne Steps einer Pipeline aktivieren / deaktivieren
-
Falls die Datenbank an einer OCT Master Instanz (Scheduler Owner) und einer OCT Slave Instanz registriert ist, sind bestimmte Steps ggf. nur auf dem Master ausführbar ( z.B. DATEV Export)
-
Steps laufen nacheinander ab, man kann aber leider (noch nicht) eine Pipeline automatisch nach einer anderen starten (nur per Zeitplan)
-
falls mehrere OCT Datenbank aktiv sind, müssen ggf. erst Prozesse in allen Einzeldatenbanken laufen, bevor eine Pipeline in einer Sammeldatenbank laufen kann
-
die Laufzeit einer Pipeline kann variierten (je nach Serverleistung bei anderen gleichzeitigen Tasks)
-
auf einer OCT Slave Instanz kann ich keinen Zeitplan konfigurieren
-
es gibt Steps mit sehr atypischem Verhalten (der DATEV Step in Version v5.10 führt ein TRUNCATE seiner Tabellen durch !)
-
man kann Zeitpläne via SQL in die Pipelinetabelle schreiben, der OCT Server refresht seine Zeitpläne auf Basis dieser Tabelle aber meist nur 2x pro Tag (Setting in der Serverkonfiguration)
Grundregeln
-
Trenne laufenden Produktionsprozess und ad-hoc Einzelaktualsisierung eines Mandanten / Jahres
-
trenne Steps in eigene Pipeline, die von einem Slave aufgeführt werden müssen (z.B. Aktualsierung der Modellierung in der Cloud)