如何在Apache Airflow中重命名DAG

时间:2017-12-14 00:55:21

标签: airflow

过去几天我一直在评估Airflow作为我们ETL工作流程的可能替代工具,并在Airflow中重命名DAG时发现了一些有趣的行为。

如果我在一个名为 hello_world.py

的文件中有一个dag
dag = DAG('hello_world', description='Simple DAG',
          schedule_interval='0 12 * * *',
          start_date=datetime(2017, 11, 1), catchup=True)

这个dag已于11月执行了10天,然后我决定只想将dag的名称更改为'yet_another_hello_world',例如 在同一个文件 hello_world.py

dag = DAG('yet_another_hello_world', description='Simple DAG',
          schedule_interval='0 12 * * *',
          start_date=datetime(2017, 11, 1), catchup=True)

我只是简单地对作业进行重命名,而不是更改为业务逻辑等。当将其部署到Airflow中时,它会自动被选中并注册为新作业,因此现在在DAG视图中可以看到2个作业

  • 程序hello_world
  • yet_another_hello_world

根据DAG定义中的 catchup = True ,调度程序会自动查看此更改并注册新作业 yet_another_hello_world 然后继续从第1次回填缺少的执行十一月它还继续保持现有的 hello_world 作业。

最终,我希望这是对现有工作的重命名,而不是保留旧的hello_world工作。有没有办法向气流表明这是一个简单的重命名?

1 个答案:

答案 0 :(得分:1)

作为最佳做法,当您想要更改dag的名称,schedule_interval或start_date时,始终建议您创建一个新的dag文件。