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

  1. Modifica el archivo config.json asignando el valor True al campo enableTaskDependencies. 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.
  2. 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.
  3. Personaliza las dependencias de las tareas añadiendo table_setting.dag_setting como una nueva sección a los nodos de tipo table. Para obtener más información, consulta Especificar y personalizar las dependencias de las tareas.
  4. Compila el framework Cortex con el proceso de compilación estándar.
  5. 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.
  6. 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:

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 ruta sql_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 definir load_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.