airflow.example_dags.example_datasets

示範 Airflow 中 Datasets 功能行為的範例 DAG,包括條件式和基於資料集表達式的排程。

使用注意事項

開啟所有 DAG。

dataset_produces_1 設定為每日執行。一旦完成,它會由於其資料集被更新而觸發多個 DAG。 dataset_consumes_1 會立即被觸發,因為它僅依賴於 dataset_produces_1 產生的資料集。 consume_1_or_2_with_dataset_expressions 也會被觸發,因為其 dataset_produces_1 或 dataset_produces_2 被更新的條件已透過 dataset_produces_1 滿足。

dataset_consumes_1_and_2 在 dataset_produces_1 執行後不會被觸發,因為它需要來自 dataset_produces_2 的資料集,而 dataset_produces_2 沒有排程,必須手動觸發。

在手動觸發 dataset_produces_2 後,多個 DAG 將會受到影響。 dataset_consumes_1_and_2 應執行,因為其所有資料集依賴項現在都已滿足。 consume_1_and_2_with_dataset_expressions 將被觸發,因為它需要 dataset_produces_1 和 dataset_produces_2 資料集都被更新。 consume_1_or_2_with_dataset_expressions 將再次被觸發,因為它有條件地設定為在任一資料集更新時執行。

consume_1_or_both_2_and_3_with_dataset_expressions 示範了複雜的資料集依賴邏輯。如果 dataset_produces_1 被更新,或者如果 dataset_produces_2 和 dag3_dataset 都被更新,則此 DAG 會觸發。此範例突顯了將多個資料集的更新與邏輯表達式結合以進行進階排程的能力。

conditional_dataset_and_time_based_timetable 說明了基於時間的排程與資料集依賴項的整合。此 DAG 配置為在 dataset_produces_1 和 dataset_produces_2 資料集都已更新時,或根據特定的 cron 排程執行,展現了 Airflow 在處理資料集和基於時間的排程的混合觸發方面的多功能性。

DAG dataset_consumes_1_never_scheduled 和 dataset_consumes_unknown_never_scheduled 將不會自動執行,因為它們依賴於不會被更新或不是由任何排程任務產生的資料集。

模組內容

airflow.example_dags.example_datasets.dag1_dataset[原始碼]
airflow.example_dags.example_datasets.dag2_dataset[原始碼]
airflow.example_dags.example_datasets.dag3_dataset[原始碼]

此條目是否有幫助?