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