airflow.example_dags.example_datasets

示例 DAG 用于演示 Airflow 中数据集功能的行为,包括条件调度和基于数据集表达式的调度。

关于使用说明

开启所有 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 后,多个 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[源代码]

此条目是否有帮助?