Airflow DAG版本控制

12

DAG版本控制是一件事吗? 我在谷歌上搜索了一下,没有找到太多相关内容。我想查看Airflow中的DAGs屏幕,并确保野外使用的DAG代码。

最简单的解决方案是将版本号作为 dag_id 的一部分包含在内,但如果有更好的替代方案,我会很感激。标签也可以工作,并且在UI中看起来很好-它们是为过滤而设计的,但我不确定是否会产生不良影响。


3
昨天针对AirFlow 2.0发布了一则消息:https://www.meetup.com/NYC-Apache-Airflow-Meetup/events/270483933/ - briba
1
我们正在做的与您提到的相同:在DAG ID中包含版本号,呵呵。 - briba
Airflow 2.0...太棒了! - Phil
看起来一流的版本控制从未出现在2.0中...无论是新闻稿还是更改日志中都没有提到AIP-36 - Michael Wheeler
3个回答

10
作为DAG版本控制AIP的作者,我可以说这项工作已经在2.0之后推迟,主要是为了支持端到端的DAG版本控制。
最初,我们(Airflow核心贡献者)计划只实现Web服务器的DAG版本控制,即改进可见性行为而不改变执行行为:

该AIP的范围是确保Airflow的可见性行为正确,而不改变执行行为,执行行为将继续基于DAG的最新版本。

这意味着它解决了一个问题,即您可以回到DAG的旧版本,查看几个月前的DAG形状,并且可以看到正确的表示,而不是“始终最新”。
目前,Airflow存在一个问题,即如果您添加/删除任务,则在Web服务器中的所有先前的DagRuns中都会添加/删除该任务。
然而,我们已经决定的是,我们将完成远程DAG获取器 + DAG版本控制,并在工作节点上启用DAG版本控制,这样用户就可以运行以前的版本的DAG。
目前,我们还没有具体日期,但计划大致在2023/24年左右实施。

2
Airflow项目目前有一个草案功能,支持DAG版本。当前的答案是,Airflow不支持版本控制。
链接中的第一个用例描述了一个关键限制,即以前运行的日志文件只能显示当前DAG中的节点。

0

1
很棒的视频。这是一个可行的解决方案,不幸的是必须添加许多复杂性才能实现,但AIP-36已经停滞了很长时间。值得一提的是,天文学家刚刚在昨天提到他们将会再次启动AIP-36,所以希望现在我们可以看到一些进展! - Forest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接