DAG dipendenti dalle attività

Questa pagina descrive i passaggi per abilitare i grafici aciclici diretti (DAG) dipendenti dalle attività per specificare le dipendenze delle attività tra i nodi delle tabelle SQL all'interno di un singolo DAG, anziché affidarsi alla pianificazione cron in più DAG. Le impostazioni personalizzabili vengono utilizzate per generare DAG di Managed Service for Apache Airflow con più nodi di aggiornamento delle tabelle che dipendono l'uno dall'altro. Cortex Framework fornisce le impostazioni consigliate per i DAG SAP dipendenti dalle attività (ECC e S/4HANA). Tuttavia, puoi personalizzarli ulteriormente o definire DAG dipendenti dalle attività per qualsiasi origine dati.

Abilitare i DAG dipendenti dalle attività

  1. Modifica il file config.json impostando il campo enableTaskDependencies su True. Questa impostazione attiva la ricerca di Cortex Framework dei file di impostazioni di reporting dipendenti dalle attività con il suffisso _task_dep.yaml.
  2. Crea un file di impostazioni di reporting dedicato con il suffisso _task_dep.yaml per ogni origine dati che richiede dipendenze delle attività. Per maggiori dettagli, consulta Definire le impostazioni di reporting dipendenti dalle attività.
  3. Personalizza le dipendenze delle attività aggiungendo table_setting.dag_setting come nuova sezione ai nodi di tipo table. Per maggiori dettagli, consulta Specificare e personalizzare le dipendenze delle attività.
  4. Crea Cortex Framework utilizzando il processo di compilazione standard.
  5. Esamina i file generati che si trovano nel bucket di destinazione in dags/data_source/reporting/task_dep_dags/dag_name. Questa cartella conterrà un file Python che definisce il DAG di Managed Airflow e un file SQL con la query di aggiornamento per ogni nodo della tabella all'interno del DAG.
  6. Copia i file nel bucket DAG di Managed Airflow per eseguire il deployment di Cortex Framework utilizzando la procedura di build standard.

Definire le impostazioni di reporting dipendenti dalle attività

Per ogni origine dati che richiede dipendenze delle attività, Cortex Framework prevede file di impostazioni di reporting dipendenti dalle attività con il suffisso _task_dep.yaml. Quando crei e aggiorni questi file, tieni presente quanto segue:

Per ulteriori informazioni sui campi disponibili nei file delle impostazioni di reporting, consulta dag_types.py.

Specificare e personalizzare le dipendenze delle attività

Personalizza le dipendenze delle attività aggiungendo table_setting.dag_setting come nuova sezione ai nodi di tipo table:

    - sql_file: dependent_table2.sql
      type: table
      table_setting:
        dag_setting:
          name: "dag1"
          parents: ["dependent_table1.sql"]
  • Le impostazioni DAG includono due campi:

    • name: una stringa obbligatoria per tutti i nodi di un DAG dipendente dalle attività che indica il nome del DAG a cui appartiene il nodo della tabella. Sono inclusi i nodi di primo livello a cui fanno riferimento altri nodi all'interno del DAG come genitori.
    • parents: un elenco facoltativo di stringhe contenenti il percorso sql_file di altri nodi della tabella all'interno dello stesso DAG. Questi genitori devono essere eseguiti correttamente prima che venga attivato il nodo.

Considerazioni aggiuntive:

  • I nodi senza genitori definiti sono considerati nodi di primo livello e verranno eseguiti all'inizio del DAG.
  • Almeno un nodo di primo livello deve avere table_setting.load_frequency definito, che verrà utilizzato come pianificazione DAG.
  • Se più nodi di primo livello hanno load_frequency definito, devono essere uguali.
  • I nodi secondari con parents definiti non possono definire load_frequency.
  • I nodi che non hanno dag_setting definito verranno generati come prima come DAG con un singolo nodo di aggiornamento della tabella e senza dipendenze delle attività.
  • Altri tipi di nodi come visualizzazioni e script non possono essere inclusi nei DAG dipendenti dalle attività, che generano solo nodi con DML per aggiornare le tabelle.