根据气流文件:
https://airflow.apache.org/docs/apache-airflow/2.4.0/concepts/datasets.html多重数据
多个数据集由于调度参数是一个列表,DAG可以需要多个数据集,并且一旦DAG消耗的所有数据集自上次运行以来至少更新一次,DAG将被调度:
with DAG(
dag_id='multiple_datasets_example',
schedule=[
example_dataset_1,
example_dataset_2,
example_dataset_3,
],
...,
):
计划中的所有数据集都更新了,那么这个消费者日将被计划。这是今天的行为
如果我想"当调度列表中的一个数据集更新时,那么DAG将被调度",我不能使用这种方法,我将不得不使用更传统的TriggerDagRunOperator?
是的,您是正确的,截至目前(气流2.5.0),如果您向schedule
参数提供多个数据集,DAG将等待所有数据集在运行前更新。关于此行为的更多配置是正在讨论的问题,我在AIP48的未来工作部分(倒数第二段)中找到了对它的参考。但是现在你必须使用TriggerDagRunOperator