DAGs dependientes de tareas
En esta página se describen los pasos para habilitar los grafos acíclicos dirigidos (DAGs) dependientes de tareas para especificar las dependencias de tareas entre los nodos de tabla SQL de un mismo DAG, en lugar de depender de la programación cron en varios DAGs. Los ajustes personalizables se usan para generar DAGs de Cloud Composer con varios nodos de actualización de tablas que dependen entre sí. Cortex Framework proporciona ajustes recomendados para los DAGs de SAP (ECC y S/4HANA) dependientes de las tareas. Sin embargo, puedes personalizar aún más los DAGs o definir DAGs dependientes de tareas para cualquier fuente de datos.
Habilitar DAGs dependientes de tareas
- Modifica el archivo config.json asignando el valor
True
al campoenableTaskDependencies
. Este ajuste activa la búsqueda del framework Cortex de archivos de configuración de informes dependientes de tareas con el sufijo_task_dep.yaml
. - Cree un archivo de configuración de informes específico con el sufijo
_task_dep.yaml
para cada fuente de datos que requiera dependencias de tareas. Para obtener más información, consulta Definir la configuración de los informes dependientes de las tareas. - Personaliza las dependencias de las tareas añadiendo
table_setting.dag_setting
como una nueva sección a los nodos de tipotable
. Para obtener más información, consulta Especificar y personalizar las dependencias de las tareas. - Compila el framework Cortex con el proceso de compilación estándar.
- Examina los archivos generados que se encuentran en el segmento de destino en
dags/data_source/reporting/task_dep_dags/dag_name
. Esta carpeta contendrá un archivo de Python que define el DAG de Cloud Composer y un archivo SQL con la consulta de actualización de cada nodo de tabla del DAG. - Copia los archivos en el segmento de DAG de Cloud Composer para implementar Cortex Framework mediante el proceso de compilación estándar.
Definir la configuración de informes dependiente de la tarea
En 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:
- En SAP, puedes personalizar y usar los archivos de configuración proporcionados
reporting_settings_ecc_task_dep.yaml
yreporting_settings_s4_task_dep.yaml
. - En el caso de otras fuentes de datos, cree sus propios ajustes de informes dependientes de tareas junto con los originales. 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.
Especificar y personalizar dependencias de tareas
Personaliza las dependencias de las tareas añadiendo table_setting.dag_setting
como una nueva sección a los nodos de tipo table
:
- sql_file: dependent_table2.sql
type: table
table_setting:
dag_setting:
name: "dag1"
parents: ["dependent_table1.sql"]
Los ajustes de DAG incluyen dos campos:
name
: cadena obligatoria para todos los nodos de un DAG dependiente de una tarea que designa el nombre del DAG al que pertenece el nodo de la tabla. Esto incluye los nodos de nivel superior a los que hacen referencia otros nodos del DAG como principales.parents
: lista opcional de cadenas que contiene la rutasql_file
de otros nodos de tabla del mismo DAG. Estos elementos superiores deben ejecutarse correctamente para que se active el nodo.
Consideraciones adicionales:
- Los nodos sin elementos parentales definidos se consideran nodos de nivel superior y se ejecutarán al inicio del DAG.
- Al menos un nodo de nivel superior debe tener definido
table_setting.load_frequency
, que se usará como programación del DAG. - Si varios nodos de nivel superior tienen definido
load_frequency
, deben ser iguales. - Los nodos secundarios que tienen definido
parents
no pueden definirload_frequency
. - Los nodos que no tengan
dag_setting
definido se generarán igual que antes, como un DAG con un solo nodo de actualización de tabla y sin dependencias de tareas. - Otros tipos de nodos, como las vistas y las secuencias de comandos, no se pueden incluir en los DAGs dependientes de tareas, que solo generan nodos con DML para actualizar tablas.