任务依赖型 DAG
本页概述了启用任务依赖项有向无环图 (DAG) 的步骤,以便在单个 DAG 内的 SQL 表节点之间指定任务依赖项,而不是依赖于跨多个 DAG 的 cron 调度。可自定义的设置用于生成包含多个相互依赖的表刷新节点的 Cloud Composer DAG。Cortex Framework 为任务依赖的 SAP DAG(ECC 和 S/4HANA)提供了建议的设置。不过,您可以进一步对其进行自定义,或为任何数据源定义任务依赖 DAG。
启用任务依赖 DAG
- 修改 config.json 文件,将 enableTaskDependencies字段设置为True。此设置会启用 Cortex Framework 对后缀为_task_dep.yaml的任务依赖报告设置文件的搜索。
- 为需要任务依赖项的每个数据源创建一个后缀为 _task_dep.yaml的专用报告设置文件。如需了解详情,请参阅定义任务依赖的报告设置。
- 将 table_setting.dag_setting添加为table类型节点的新部分,以自定义任务依赖项。如需了解详情,请参阅指定和自定义任务依赖项。
- 使用标准构建流程构建 Cortex Framework。
- 检查位于目标存储分区中 dags/data_source/reporting/task_dep_dags/dag_name下的生成文件。此文件夹将包含用于定义 Cloud Composer DAG 的 Python 文件,以及包含 DAG 中每个表节点的刷新查询的 SQL 文件。
- 将文件复制到 Cloud Composer DAG 存储分区,以使用标准构建流程部署 Cortex Framework。
定义与任务相关的报告设置
对于需要任务依赖项的每个数据源,Cortex Framework 都希望报告设置文件带有 _task_dep.yaml 后缀。创建和更新这些文件时,请考虑以下事项:
- 对于 SAP,您可以自定义并使用提供的设置文件 reporting_settings_ecc_task_dep.yaml和reporting_settings_s4_task_dep.yaml。
- 对于其他数据源,请在原始设置旁边创建自己的任务依赖报告设置,例如:reporting_settings_task_dep.yaml.
如需详细了解报告设置文件中提供的字段,请参阅 dag_types.py。
指定和自定义任务依赖项
通过将 table_setting.dag_setting 添加为 table 类型节点的新部分,自定义任务依赖项:
    - sql_file: dependent_table2.sql
      type: table
      table_setting:
        dag_setting:
          name: "dag1"
          parents: ["dependent_table1.sql"]
- DAG 设置包含两个字段: - name:任务依赖型 DAG 中的所有节点都需要此字符串,用于指定表节点所属的 DAG 的名称。这包括被 DAG 中的其他节点引用为父节点的顶层节点。
- parents:可选字符串列表,包含同一 DAG 中其他表节点的- sql_file路径。这些父级必须先成功运行,然后节点才会触发。
 
其他注意事项:
- 没有定义父级的节点会被视为顶级节点,并会在 DAG 开始时运行。
- 必须至少有一个顶级节点定义了 table_setting.load_frequency,该节点将用作 DAG 时间表。
- 如果多个顶级节点定义了 load_frequency,则它们必须相同。
- 已定义 parents的子节点无法定义load_frequency。
- 未定义 dag_setting的节点将与之前一样生成,即为包含单个表刷新节点且没有任务依赖项的 DAG。
- 视图和脚本等其他节点类型无法包含在任务依赖 DAG 中,因为这些 DAG 仅生成使用 DML 刷新表的节点。