Organisation von Pipelines
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)