DAG dépendants des tâches
Cette page décrit la procédure à suivre pour activer les graphes orientés acycliques (DAG) dépendants des tâches afin de spécifier les dépendances de tâches entre les nœuds de table SQL d'un seul DAG, plutôt que de s'appuyer sur la planification cron sur plusieurs DAG. Les paramètres personnalisables sont utilisés pour générer des DAG Cloud Composer avec plusieurs nœuds d'actualisation de table qui dépendent les uns des autres. Cortex Framework fournit les paramètres recommandés pour les DAG SAP (ECC et S/4HANA) dépendants des tâches. Toutefois, vous pouvez les personnaliser davantage ou définir des DAG dépendants des tâches pour toutes les sources de données.
Activer les DAG dépendants des tâches
- Modifiez le fichier config.json en définissant le champ
enableTaskDependencies
surTrue
. Ce paramètre active la recherche de fichiers de paramètres de création de rapports dépendants des tâches avec le suffixe_task_dep.yaml
dans le framework Cortex. - Créez un fichier de paramètres de création de rapports dédié avec le suffixe
_task_dep.yaml
pour chaque source de données nécessitant des dépendances de tâches. Pour en savoir plus, consultez la section Définir des paramètres de création de rapports dépendant des tâches. - Personnalisez les dépendances de tâches en ajoutant
table_setting.dag_setting
en tant que nouvelle section aux nœuds de typetable
. Pour en savoir plus, consultez la section Spécifier et personnaliser les dépendances de tâche. - Compilez Cortex Framework à l'aide du processus de compilation standard.
- Examinez les fichiers générés qui se trouvent dans le bucket cible sous
dags/data_source/reporting/task_dep_dags/dag_name
. Ce dossier contiendra un fichier Python définissant le DAG Cloud Composer et un fichier SQL avec la requête d'actualisation pour chaque nœud de table du DAG. - Copiez les fichiers dans le bucket DAG Cloud Composer pour déployer Cortex Framework à l'aide du processus de compilation standard.
Définir des paramètres de création de rapports dépendant des tâches
Pour chaque source de données nécessitant des dépendances de tâches, Cortex Framework attend des fichiers de paramètres de création de rapports dépendants des tâches avec le suffixe _task_dep.yaml
.
Lorsque vous créez et mettez à jour ces fichiers, tenez compte des points suivants:
- Pour SAP, vous pouvez personnaliser et utiliser les fichiers de paramètres fournis
reporting_settings_ecc_task_dep.yaml
etreporting_settings_s4_task_dep.yaml
. - Pour d'autres sources de données, créez vos propres paramètres de création de rapports dépendant des tâches à côté de l'original, par exemple :
reporting_settings_task_dep.yaml.
Pour en savoir plus sur les champs disponibles dans les fichiers de paramètres de création de rapports, consultez dag_types.py.
Spécifier et personnaliser les dépendances de tâche
Personnalisez les dépendances de tâche en ajoutant table_setting.dag_setting
en tant que nouvelle section aux nœuds de type table
:
- sql_file: dependent_table2.sql
type: table
table_setting:
dag_setting:
name: "dag1"
parents: ["dependent_table1.sql"]
Les paramètres du DAG incluent deux champs:
name
: chaîne obligatoire pour tous les nœuds d'un DAG dépendant des tâches qui désigne le nom du DAG auquel le nœud de table appartient. Cela inclut les nœuds de niveau supérieur qui sont référencés en tant que parent par d'autres nœuds du DAG.parents
: liste facultative de chaînes contenant le cheminsql_file
d'autres nœuds de table dans le même DAG. Ces parents doivent s'exécuter correctement avant que le nœud ne soit déclenché.
Autres considérations:
- Les nœuds sans parents définis sont considérés comme des nœuds de niveau supérieur et s'exécutent au début du DAG.
- Au moins un nœud de niveau supérieur doit avoir
table_setting.load_frequency
défini, qui sera utilisé comme planification DAG. - Si plusieurs nœuds de premier niveau ont défini
load_frequency
, ils doivent être identiques. - Les nœuds enfants pour lesquels
parents
est défini ne peuvent pas définirload_frequency
. - Les nœuds pour lesquels
dag_setting
n'est pas défini seront générés comme avant, en tant que DAG avec un seul nœud d'actualisation de table et aucune dépendance de tâche. - Les autres types de nœuds, tels que les vues et les scripts, ne peuvent pas être inclus dans les DAG dépendants des tâches, qui ne génèrent que des nœuds avec DML pour actualiser les tables.