依附於工作的 DAG

本頁說明如何啟用工作依附元件有向非循環圖 (DAG),在單一 DAG 內指定 SQL 資料表節點之間的工作依附元件,而不需依賴多個 DAG 的 cron 排程。系統會使用可自訂的設定,產生 Managed Service for Apache Airflow DAG,其中包含多個相互依附的資料表重新整理節點。Cortex Framework 提供工作相關 SAP DAG (ECC 和 S/4HANA) 的建議設定。不過,您可以進一步自訂這些 DAG,或為任何資料來源定義工作相關的 DAG。

啟用依附於任務的 DAG

  1. 修改 config.json 檔案,將 enableTaskDependencies 欄位設為 True。這項設定會啟動 Cortex Framework 的搜尋功能,尋找含有 _task_dep.yaml 後置字元的任務相關報表設定檔。
  2. 為每個需要工作依附元件的資料來源,建立專屬的報表設定檔,並加上 _task_dep.yaml 後置字元。詳情請參閱「定義工作相關的報表設定」。
  3. 如要自訂工作依附元件,請將 table_setting.dag_setting 新增為 table 型別節點的新區段。詳情請參閱「指定及自訂工作依附元件」。
  4. 使用標準建構程序建構 Cortex Framework。
  5. 檢查 dags/data_source/reporting/task_dep_dags/dag_name 下方目標值區中的生成檔案。這個資料夾會包含定義 Managed Airflow DAG 的 Python 檔案,以及含有 DAG 中每個資料表節點重新整理查詢的 SQL 檔案。
  6. 將檔案複製到 Managed Airflow DAG bucket,即可使用標準建構程序部署 Cortex Framework。

定義工作相關的報表設定

對於需要工作相依性的每個資料來源,Cortex Framework 會預期工作相依性報表設定檔的後置字元為 _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 開始時執行。
  • 至少須定義一個頂層節點,做為 DAG 時間表。table_setting.load_frequency
  • 如果多個頂層節點已定義 load_frequency,則這些節點必須相同。
  • 定義 parents 的子節點無法定義 load_frequency
  • 如果節點未定義 dag_setting,系統會照常產生節點,也就是 DAG,其中包含單一資料表重新整理節點,且沒有工作依附元件。
  • 檢視畫面和指令碼等其他節點類型無法納入工作相關 DAG,因為這類 DAG 只會產生含有 DML 的節點,用於重新整理表格。