Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
DAGs dependentes de tarefas
Esta página descreve as etapas para ativar gráficos acíclicos direcionados (DAGs) dependentes de tarefas
para especificar dependências de tarefas
entre nós de tabelas SQL em um único DAG, em vez de depender da programação cron
em vários DAGs. As configurações personalizáveis são usadas para gerar
DAGs do Cloud Composer com vários nós de atualização de tabela que dependem uns dos outros.
O Cortex Framework fornece configurações recomendadas para DAGs do SAP (ECC e S/4HANA) dependentes de tarefas. No entanto, é possível
personalizá-los ainda mais ou definir DAGs dependentes de tarefas para qualquer
fonte de dados.
Ativar DAGs dependentes de tarefas
Modifique o arquivo config.json definindo o campo enableTaskDependencies
como True. Essa configuração ativa a pesquisa do Cortex Framework
para arquivos de configurações de relatórios dependentes de tarefas com o sufixo _task_dep.yaml.
Crie um arquivo de configurações de relatórios dedicado com o sufixo _task_dep.yaml
para cada fonte de dados que exige dependências de tarefas. Para mais detalhes, consulte
Definir configurações de relatórios dependentes de tarefas.
Personalize as dependências de tarefas adicionando
table_setting.dag_setting como uma nova seção aos nós do tipo table.
Para mais detalhes, consulte
Especificar e personalizar dependências de tarefas.
Examine os arquivos gerados que estão localizados no bucket de destino em
dags/data_source/reporting/task_dep_dags/dag_name. Essa pasta vai conter um arquivo Python que define o DAG do Cloud Composer e um arquivo SQL com a consulta de atualização para cada nó de tabela no DAG.
Copie os arquivos para o bucket do DAG do Cloud Composer para implantar
o Cortex Framework usando o
processo de build padrão.
Definir configurações de relatórios dependentes da tarefa
Para cada origem de dados que exige dependências de tarefas, o Cortex Framework
espera arquivos de configurações de relatórios dependentes de tarefas com o sufixo _task_dep.yaml.
Ao criar e atualizar esses arquivos, considere o seguinte:
Para outras origens de dados, crie suas próprias configurações de relatórios dependentes da tarefa com a original, por exemplo:
reporting_settings_task_dep.yaml.
Para mais informações sobre os campos disponíveis nos arquivos de configurações de relatórios, consulte dag_types.py.
Especificar e personalizar dependências de tarefas
Personalize as dependências de tarefas adicionando
table_setting.dag_setting como uma nova seção aos nós do tipo table:
name: uma string obrigatória para todos os nós em um DAG dependente de tarefas que
designa o nome do DAG ao qual o nó da tabela pertence. Isso
inclui nós de nível superior que são referenciados como pais por outros
nós no DAG.
parents: uma lista opcional de strings que contém o caminho sql_file de
outros nós de tabela no mesmo DAG. Esses pais precisam ser executados
com sucesso antes que o nó seja acionado.
Outras considerações:
Os nós sem pais definidos são considerados nós de nível superior e são executados
no início do DAG.
Pelo menos um nó de nível superior precisa ter table_setting.load_frequency
definido, que será usado como a programação DAG.
Se vários nós de nível superior tiverem load_frequency definidos, eles precisarão ser
iguais.
Os nós filhos que têm parents definidos não podem definir load_frequency.
Os nós que não tiverem dag_setting definidos serão gerados da mesma forma que antes, como um DAG com um único nó de atualização de tabela e sem dependências de tarefas.
Outros tipos de nó, como visualizações e scripts, não podem ser incluídos em
DAGs dependentes de tarefas, que só geram nós com DML para atualizar tabelas.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]