依附於工作的 DAG

本頁面說明如何啟用工作依附元件有向非循環圖 (DAG),在單一 DAG 內指定 SQL 資料表節點之間的工作依附元件,而不必依賴多個 DAG 的 cron 排程。自訂設定可用於產生 Cloud Composer 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 下方目標值區中的生成檔案。這個資料夾會包含定義 Cloud Composer DAG 的 Python 檔案,以及含有 DAG 中每個資料表節點重新整理查詢的 SQL 檔案。
  6. 將檔案複製到 Cloud Composer DAG 值區,即可使用標準建構程序部署 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 的節點,用於重新整理表格。