依附於工作的 DAG
本頁面說明如何啟用工作依附元件有向非循環圖 (DAG),在單一 DAG 內指定 SQL 資料表節點之間的工作依附元件,而不必依賴多個 DAG 的 cron 排程。自訂設定可用於產生 Cloud Composer DAG,其中包含多個相互依附的資料表重新整理節點。Cortex Framework 提供工作相關 SAP DAG (ECC 和 S/4HANA) 的建議設定。不過,您可以進一步自訂這些 DAG,或為任何資料來源定義工作相關的 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 開始時執行。
- 至少須定義一個頂層節點,做為 DAG 時間表。
table_setting.load_frequency
- 如果多個頂層節點已定義
load_frequency
,則這些節點必須相同。 - 定義
parents
的子節點無法定義load_frequency
。 - 如果節點未定義
dag_setting
,系統會照常產生節點,也就是 DAG,其中包含單一資料表重新整理節點,且沒有任何工作依附元件。 - 檢視畫面和指令碼等其他節點類型無法納入工作相關 DAG,因為這類 DAG 只會產生含有 DML 的節點,用於重新整理表格。