OCT-Best-Practice
Breadcrumbs

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)