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à
- Modifica il file config.json impostando il campo
enableTaskDependenciessuTrue. Questa impostazione attiva la ricerca di Cortex Framework dei file di impostazioni di reporting dipendenti dalle attività con il suffisso_task_dep.yaml. - Crea un file di impostazioni di reporting dedicato con il suffisso
_task_dep.yamlper ogni origine dati che richiede dipendenze delle attività. Per maggiori dettagli, consulta Definire le impostazioni di reporting dipendenti dalle attività. - Personalizza le dipendenze delle attività aggiungendo
table_setting.dag_settingcome nuova sezione ai nodi di tipotable. Per maggiori dettagli, consulta Specificare e personalizzare le dipendenze delle attività. - Crea Cortex Framework utilizzando il processo di compilazione standard.
- 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. - 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 SAP puoi personalizzare e utilizzare i file di impostazioni forniti
reporting_settings_ecc_task_dep.yamlereporting_settings_s4_task_dep.yaml. - Per altre origini dati, crea le tue impostazioni di reporting dipendenti dalle attività insieme a quelle originali, ad esempio:
reporting_settings_task_dep.yaml.
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 percorsosql_filedi 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_frequencydefinito, che verrà utilizzato come pianificazione DAG. - Se più nodi di primo livello hanno
load_frequencydefinito, devono essere uguali. - I nodi secondari con
parentsdefiniti non possono definireload_frequency. - I nodi che non hanno
dag_settingdefinito 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.