Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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 sur True. 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 type table.
Pour en savoir plus, consultez la section Spécifier et personnaliser les dépendances de tâche.
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.
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 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:
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 chemin sql_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éfinir load_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.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[],[],null,["# Task dependent DAGs\n===================\n\nThis page outlines the steps to enable task dependent Directed Acyclic Graphs\n(DAGs) to specify task dependencies\nbetween SQL table nodes within a single DAG, rather than relying on cron\nscheduling across multiple DAGs. Customizable settings are used to generate\nCloud Composer DAGs with multiple table refresh nodes that depend on each other.\nCortex Framework provides recommended settings for task dependent\n[SAP DAGs (ECC and S/4HANA)](/cortex/docs/operational-sap). However, you can\ncustomize them further or define task dependent DAGs for any\n[data sources](/cortex/docs/data-sources-and-workloads).\n\nEnable task dependent DAGs\n--------------------------\n\n1. Modify the [*config.json*](https://github.com/GoogleCloudPlatform/cortex-data-foundation/blob/main/config/config.json) file by setting the `enableTaskDependencies` field to `True`. This setting activates the Cortex Framework's search for task-dependent reporting settings files with the suffix `_task_dep.yaml`.\n2. Create a dedicated reporting settings file with the suffix `_task_dep.yaml` for each data source requiring task dependencies. For more details, see [Define task-dependent reporting settings](/cortex/docs/optional-step-task-dependent-dags#define_task-dependent_reporting_settings).\n3. Customize the task dependencies by adding `table_setting.dag_setting` as a new section to `table` type nodes. For more details, see [Specify and customize task dependencies](/cortex/docs/optional-step-task-dependent-dags#specify_and_customize_task_dependencies).\n4. Build Cortex Framework using the [standard build process](/cortex/docs/deployment-step-six#Cloud%20Composer).\n5. Examine the generated files that are located in the target bucket under `dags/`\u003cvar translate=\"no\"\u003edata_source\u003c/var\u003e`/reporting/task_dep_dags/`\u003cvar translate=\"no\"\u003edag_name\u003c/var\u003e. This folder will contain a Python file defining the Cloud Composer DAG and a SQL file with the refresh query for each table node within the DAG.\n6. Copy the files to the Cloud Composer DAG bucket to deploy Cortex Framework using the [standard build process](/cortex/docs/deployment-step-six#Cloud%20Composer).\n\nDefine task-dependent reporting settings\n----------------------------------------\n\nFor each data source requiring task dependencies, Cortex Framework\nexpects task-dependent reporting settings files with the suffix `_task_dep.yaml`.\nWhen creating and updating these files, consider the following:\n\n- For SAP you may customize and use the provided setting files [`reporting_settings_ecc_task_dep.yaml`](https://github.com/GoogleCloudPlatform/cortex-data-foundation/blob/main/src/SAP/SAP_REPORTING/reporting_settings_ecc_task_dep.yaml) and [`reporting_settings_s4_task_dep.yaml`](https://github.com/GoogleCloudPlatform/cortex-data-foundation/blob/main/src/SAP/SAP_REPORTING/reporting_settings_s4_task_dep.yaml).\n- For other data sources, create your own task-dependent reporting settings alongside the original, for example: `reporting_settings_task_dep.yaml.`\n\n| **Note:** These settings are distinct from the standard `reporting_settings.yaml` files so they can be enabled and deployed independently. If a data source lacks a `reporting_settings_task_dep.yaml` file, it will use the regular `reporting_settings.yaml` file without task dependencies regardless of the `enableTaskDependencies` value in *config.json* .\n\nFor more information about the fields available within reporting settings\nfiles, see [dag_types.py](https://github.com/GoogleCloudPlatform/cortex-data-foundation/tree/main/src/common/materializer/dag_types.py).\n\nSpecify and customize task dependencies\n---------------------------------------\n\nCustomize the task dependencies by adding\n`table_setting.dag_setting` as a new section to `table` type nodes: \n\n - sql_file: dependent_table2.sql\n type: table\n table_setting:\n dag_setting:\n name: \"dag1\"\n parents: [\"dependent_table1.sql\"]\n\n- DAG settings include two fields:\n\n - `name`: A required string for **all nodes in a task dependent DAG** that designates the name of the DAG to which the table node belongs. This includes top level nodes which are referenced as a *parent* by other nodes within the DAG.\n - `parents`: An optional list of strings containing the `sql_file` path of other table nodes within the same DAG. These parents must run successfully before the node is triggered.\n\n**Additional considerations**:\n\n- Nodes without defined parents are considered top level nodes and will run at the start of the DAG.\n- At least one top level node must have `table_setting.load_frequency` defined, which will be used as the DAG schedule.\n- If multiple top level nodes have defined `load_frequency`, they must be the same.\n- Child nodes that have `parents` defined can't define `load_frequency`.\n- Nodes that don't have `dag_setting` defined will be generated the same as before as a DAG with a single table refresh node and no task dependencies.\n- Other node types like views and scripts can't be included in task dependent DAGs, which only generate nodes with DML to refresh tables."]]