【问题标题】:Airflow DAG Versioning气流 DAG 版本控制
【发布时间】:2020-05-14 11:52:35
【问题描述】:

DAG 版本控制是一回事吗?通过一些谷歌搜索,我找不到太多关于这个主题的信息。我想查看 Airflow 中的 DAG 屏幕,并确定 DAG 代码是什么。

最简单的解决方案是在 dag_id 中包含版本号,但如果有人有更好的替代解决方案,我将不胜感激。标签也可以工作,并且在 UI 中看起来不错 - 虽然它们是为过滤而设计的,但我不确定是否会有不良的副作用。

【问题讨论】:

标签: airflow


【解决方案1】:

作为DAG Versioning AIP 的作者,我可以说这项工作在 2.0 之后被推迟,主要是为了支持端到端 DAG 版本控制。

最初,我们(Airflow 核心提交者)计划拥有一个仅限 Web 服务器的 DAG 版本控制,即改善可见性行为而不是执行:

此 AIP 的范围,以确保 气流是正确的,而不会改变执行行为 将继续基于最新版本的 DAG。

这意味着它克服了您可以返回到旧版本的 DAG 来查看几个月前 DAG 的形状并且您可以看到正确的表示而不是“始终最新”的问题。

目前,Airflow 遇到的问题是,如果您添加/删除一个任务,它会在 Web 服务器中所有以前的 DagRuns 中添加/删除。

但是,我们决定完成Remote DAG Fetcher + DAG 版本控制并在工作端启用 DAG 版本控制,因此用户也可以使用以前的版本运行 DAG。

目前,我们没有具体日期,但主要计划在 2021 年底左右进行。

【讨论】:

    【解决方案2】:

    Airflow 项目有一个draft feature open to support DAG versions。目前的答案是 Airflow 不支持版本。

    链接中的第一个用例描述了一个关键限制,以前运行的日志文件只能显示当前 DAG 中的节点。

    【讨论】:

      【解决方案3】:

      如上所述,到目前为止,Airflow 还没有自己的版本控制工作流功能。但是,您可以通过在自己的 git 存储库中管理 DAG 并将其状态作为子模块获取到气流存储库中来自行管理。更多信息; https://www.youtube.com/watch?v=a-4yRne3ba4&lc=UgwiIO-ECVFSZPz1hOt4AaABAg

      【讨论】:

      • 不错的视频。这是一个可行的解决方案,不幸的是必须增加很多复杂性才能实现这一点,但 AIP-36 已经停滞了很长时间。值得一提的是,天文学家刚刚(昨天!)提到他们将复活 AIP-36,所以希望我们现在能看到一些行动!
      猜你喜欢
      • 1970-01-01
      • 2023-03-07
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 2023-01-02
      • 2021-05-03
      • 1970-01-01
      相关资源
      最近更新 更多