Aufgabenabhängige DAGs

Auf dieser Seite werden die Schritte zum Aktivieren von aufgabenabhängigen gerichteten azyklischen Graphen (DAGs) beschrieben, um Aufgabenabhängigkeiten zwischen SQL-Tabellenknoten innerhalb eines einzelnen DAGs anzugeben, anstatt sich auf die Cron-Planung über mehrere DAGs hinweg zu verlassen. Mithilfe anpassbarer Einstellungen werden Managed Service for Apache Airflow-DAGs mit mehreren Tabellenaktualisierungsknoten generiert, die voneinander abhängig sind. Cortex Framework bietet empfohlene Einstellungen für aufgabenabhängige SAP-DAGs (ECC und S/4HANA). Sie können sie jedoch weiter anpassen oder aufgabenabhängige DAGs für beliebige Datenquellen definieren.

Aufgabenabhängige DAGs aktivieren

  1. Ändern Sie die Datei config.json und legen Sie das Feld enableTaskDependencies auf True fest. Mit dieser Einstellung wird die Suche von Cortex Framework nach aufgabenabhängigen Berichtseinstellungsdateien mit dem Suffix _task_dep.yaml aktiviert.
  2. Erstellen Sie für jede Datenquelle, für die Aufgabenabhängigkeiten erforderlich sind, eine eigene Berichtseinstellungsdatei mit dem Suffix _task_dep.yaml. Weitere Informationen finden Sie unter Aufgabenabhängige Berichtseinstellungen definieren.
  3. Passen Sie die Aufgabenabhängigkeiten an, indem Sie table_setting.dag_setting als neuen Abschnitt zu Knoten vom Typ table hinzufügen. Weitere Informationen finden Sie unter Aufgabenabhängigkeiten angeben und anpassen.
  4. Erstellen Sie Cortex Framework mit dem Standard-Buildprozess.
  5. Prüfen Sie die generierten Dateien, die sich im Ziel-Bucket unter dags/data_source/reporting/task_dep_dags/dag_name befinden. Dieser Ordner enthält eine Python-Datei, in der der Managed Airflow-DAG definiert ist, und eine SQL-Datei mit der Aktualisierungsabfrage für jeden Tabellenknoten im DAG.
  6. Kopieren Sie die Dateien in den Managed Airflow-DAG-Bucket, um Cortex Framework mit dem Build-Prozess bereitzustellen.

Aufgabenabhängige Berichtseinstellungen definieren

Für jede Datenquelle, für die Aufgabenabhängigkeiten erforderlich sind, erwartet Cortex Framework aufgabenabhängige Berichtseinstellungsdateien mit dem Suffix _task_dep.yaml. Beachten Sie beim Erstellen und Aktualisieren dieser Dateien Folgendes:

Weitere Informationen zu den Feldern, die in Berichtseinstellungs dateien verfügbar sind, finden Sie unter dag_types.py.

Aufgabenabhängigkeiten angeben und anpassen

Passen Sie die Aufgabenabhängigkeiten an, indem Sie table_setting.dag_setting als neuen Abschnitt zu Knoten vom Typ table hinzufügen:

    - sql_file: dependent_table2.sql
      type: table
      table_setting:
        dag_setting:
          name: "dag1"
          parents: ["dependent_table1.sql"]
  • Die DAG-Einstellungen enthalten zwei Felder:

    • name: Eine erforderliche String für alle Knoten in einem aufgabenabhängigen DAG , die den Namen des DAG angibt, zu dem der Tabellenknoten gehört. Dazu gehören Knoten der obersten Ebene, auf die von anderen Knoten im DAG als übergeordnetes Element verwiesen wird.
    • parents: Eine optionale Liste von Strings mit dem sql_file-Pfad anderer Tabellenknoten im selben DAG. Diese übergeordneten Knoten müssen erfolgreich ausgeführt werden, bevor der Knoten ausgelöst wird.

Zusätzliche Überlegungen:

  • Knoten ohne definierte übergeordnete Knoten werden als Knoten der obersten Ebene betrachtet und am Anfang des DAG ausgeführt.
  • Für mindestens einen Knoten der obersten Ebene muss table_setting.load_frequency definiert sein, das als DAG-Zeitplan verwendet wird.
  • Wenn für mehrere Knoten der obersten Ebene load_frequency definiert ist, müssen sie identisch sein.
  • Untergeordnete Knoten, für die parents definiert sind, können load_frequency nicht definieren.
  • Knoten, für die dag_setting nicht definiert ist, werden wie zuvor als DAG mit einem einzelnen Tabellenaktualisierungsknoten und ohne Aufgabenabhängigkeiten generiert.
  • Andere Knotentypen wie Ansichten und Skripts können nicht in aufgabenabhängige DAGs aufgenommen werden. In diesen werden nur Knoten mit DML zum Aktualisieren von Tabellen generiert.