Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
DAGs dependientes de tareas
En esta página, se describen los pasos para habilitar los grafos acíclicos dirigidos (DAG) dependientes de tareas para especificar dependencias de tareas entre nodos de tablas de SQL dentro de un solo DAG, en lugar de depender de la programación de cron en varios DAG. La configuración personalizable se usa para generar DAG de Cloud Composer con varios nodos de actualización de tablas que dependen entre sí.
Cortex Framework proporciona la configuración recomendada para las DAG de SAP (ECC y S/4HANA) que dependen de la tarea. Sin embargo, puedes personalizarlos aún más o definir DAGs dependientes de tareas para cualquier fuente de datos.
Habilita los DAGs dependientes de tareas
Para modificar el archivo config.json, establece el campo enableTaskDependencies en True. Este parámetro de configuración activa la búsqueda de Cortex Framework de archivos de configuración de informes dependientes de la tarea con el sufijo _task_dep.yaml.
Crea un archivo de configuración de informes dedicado con el sufijo _task_dep.yaml para cada fuente de datos que requiera dependencias de tareas. Para obtener más información, consulta Define la configuración de informes dependiente de la tarea.
Para personalizar las dependencias de la tarea, agrega table_setting.dag_setting como una sección nueva a los nodos de tipo table.
Para obtener más detalles, consulta Especifica y personaliza las dependencias de tareas.
Examina los archivos generados que se encuentran en el bucket de destino en dags/data_source/reporting/task_dep_dags/dag_name. Esta carpeta
contendrá un archivo Python que define el DAG de Cloud Composer y un archivo SQL
con la consulta de actualización para cada nodo de tabla dentro del DAG.
Copia los archivos en el bucket de DAG de Cloud Composer para implementar
Cortex Framework con el
proceso de compilación estándar.
Define la configuración de informes dependiente de la tarea
Para cada fuente de datos que requiera dependencias de tareas, Cortex Framework espera archivos de configuración de informes dependientes de tareas con el sufijo _task_dep.yaml.
Cuando crees y actualices estos archivos, ten en cuenta lo siguiente:
Para otras fuentes de datos, crea tu propia configuración de informes dependiente de la tarea junto con la original, por ejemplo:
reporting_settings_task_dep.yaml.
Para obtener más información sobre los campos disponibles en los archivos de configuración de informes, consulta dag_types.py.
Especifica y personaliza las dependencias de las tareas
Para personalizar las dependencias de la tarea, agrega table_setting.dag_setting como una sección nueva a los nodos de tipo table:
name: Es una cadena obligatoria para todos los nodos de un DAG dependiente de tareas que designa el nombre del DAG al que pertenece el nodo de la tabla. Esto incluye los nodos de nivel superior a los que otros nodos del DAG hacen referencia como superiores.
parents: Es una lista opcional de cadenas que contiene la ruta de acceso sql_file de otros nodos de tabla dentro del mismo DAG. Estos elementos superiores deben ejecutarse correctamente antes de que se active el nodo.
Consideraciones adicionales:
Los nodos sin elementos superiores definidos se consideran nodos de nivel superior y se ejecutarán al comienzo del DAG.
Al menos un nodo de nivel superior debe tener definido table_setting.load_frequency, que se usará como programación de DAG.
Si varios nodos de nivel superior tienen definido load_frequency, deben ser los mismos.
Los nodos secundarios que tienen parents definido no pueden definir load_frequency.
Los nodos que no tengan definido dag_setting se generarán de la misma manera que antes como un DAG con un solo nodo de actualización de tablas y sin dependencias de tareas.
No se pueden incluir otros tipos de nodos, como vistas y secuencias de comandos, en los DAG dependientes de tareas, que solo generan nodos con DML para actualizar tablas.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]