Airflow DAG 版本控制

标签 airflow

DAG 版本控制是一回事吗?通过几次 Google 搜索,我找不到关于该主题的太多信息。我想查看 Airflow 中的 DAG 屏幕,并确定哪些 DAG 代码在野外。

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

最佳答案

作为作者的DAG Versioning AIP ,我可以说这项工作已经推迟到 2.0 之后,主要是为了支持端到端的 DAG 版本控制。
最初,我们(Airflow 核心提交者)计划使用仅限 Web 服务器的 DAG 版本控制,即改进可见性行为但不改进执行:

The scope of this AIP to make sure that the visibility behavior of Airflow is correct, without changing the execution behaviour which will continue to be based on the most recent version of the DAG.


这意味着它克服了您可以返回到 DAG 的旧版本,查看几个月前 DAG 的形状并且您可以看到正确表示而不是“始终最新”的问题。
目前,Airflow 遇到的问题是,如果您添加/删除任务,它会在 Web 服务器的所有先前 DagRun 中添加/删除。
然而,我们决定的是,我们将完成Remote DAG Fetcher + DAG 版本控制并在工作端启用 DAG 版本控制,因此用户也可以使用先前版本运行 DAG。
目前,我们没有日期,但主要计划在 2021 年底左右完成。

关于 Airflow DAG 版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61796692/

相关文章:

python - Airflow 网络服务器不启动,除非在 Debug模式下

airflow - 安排 Airflow 在工作日运行

python - Airflow 异常: The conn_id `http_default` isn't defined error trying to run an HTTP operator in Airflow

python - 需要在 Airflow 中访问 DockerOperator 中的调度时间

python - Airflow : pass parameter from python function to MySQL Operator

python - Airflow 1.9.0 无法对任务进行排队

kubernetes - Airflow 无法识别我的 S3 连接设置

Airflow 为什么调度程序不启动我的 DAG?

docker - 以编程方式创建 Airflow 池

AirFlow - X 连续失败后禁用 dag