我刚开始使用Airflow。我想在一个循环中设置一个DAG,在该循环中,下一个DAG在上一个DAG完成时开始。这是我要实现的工作流程:
list_of_files = [......]
for file in list_of_files:
dag = DAG('pipeline', default_args=default_args, schedule_interval=None)
t1 = BashOperator('copy_this_file', ....)
t2 = BashOperator('process_this_file', ...)
t1.set_downstream(t2)
如果我运行airflow backfill pipeline -s 2019-05-01
,则会同时启动所有DAG。
答案 0 :(得分:1)
DAG不能相互依赖,它们是独立的工作流程。您希望将任务配置为相互依赖。您可以有一个带有多个执行分支的DAG,每个文件一个,这样的事情(未经测试):
dag = DAG('pipeline', ...)
list_of_files = [......]
with dag:
for file in list_of_files:
t1 = BashOperator('copy_this_file', ....)
t2 = BashOperator('process_this_file', ...)
t1.set_downstream(t2)