Airflow 2.7的重要更新有哪些?

Airflow 2.7的重要更新有哪些?

通过DALL-E-2生成的图像,使用提示“从外部系统流入目的地系统的数据作为系统设计图,数字艺术”。

Apache Airflow 2.7.0终于发布了,我们都对这个最新版本中的所有显著功能感到兴奋。新版本包括40个新功能,53个错误修复,49个改进和15个文档更新。

此版本的主要焦点是安全性,但同时也提供了许多令人兴奋的与安全性无关的功能。如果你想了解更多关于数据科学的相关内容,可以阅读以下这些文章:
5个ChatGPT插件,让你领先于99%的数据科学家!
数据科学初学者必备的7个备忘单
数据科学家必备:Git操作指南
从优秀到卓越:数据科学家的Python技能进化之路

►►► 新的集群活动UI

从Airflow 2.7.0开始,在Airflow UI的顶层菜单中引入了一个新的选项卡,称为Cluster Activity(集群活动)

Airflow主菜单中新增Cluster Activity选项卡-来源:作者

新的集群活动UI展示整个集群状态,包括组件运行状况(元数据库、调度器、触发器和DAG处理器),以及关于DAG/Task运行状态和DAG运行类型的详细信息。

新的集群活动UI作为新的Airflow 2.7.0版本的一部分发布
来源:作者

►►► 查看上次解析源代码的时间

在过去,我对“看不出我对特定DAG的源代码所做的更改是否真的被解析”感到非常恼火。我通常必须刷新页面(多次),并开始在源代码中查找我应用了一些更改的特定区域,以确保它们已经被解析,这样我就可以重新触发DAG。

新的Airflow版本在DAG的Code选项卡中引入了一个Parsed at字段,指示DAG源代码最后更新的时间戳。

新的Code选项卡包含一个时间戳,指示上次解析DAG源代码的时间,来源:作者

简单但有用的补充!

►►► 支持键盘快捷键

Airflow网格视图现在也支持快捷键。进入DAG的网格屏幕后,你会注意到过滤部分下方有一个注释,指示你可以通过输入shift+/来访问支持的快捷方式列表。

shift+/快捷方式将列出所有可用的快捷方式,以便与Airflow DAG和任务交互,来源:作者

你可以通过快捷键执行的操作包括清除DAG运行并将其标记为成功或失败。

与Airflow DAG和任务交互的快捷方式完整列表,来源:作者

►►► 图形和甘特视图集中在一个地方

甘特视图和图形视图现已移至DAG的网格视图中,这样在查看更复杂的DAG时,更容易在任务详细信息、图形、日志和甘特视图之间导航。

现在可以在网格视图下找到甘特图和图形视图,来源:作者

请注意,旧的图形视图也被删除,新的图形视图是默认视图。

►►► 设置和拆卸任务

在设计数据管道时,通常会创建一个用于执行特定工作的资源,然后将其拆除。新的Airflow版本引入了设置和拆卸任务,使这种模式变得可行。

假设我们有一个DAG,它创建一个计算资源,运行一个查询,最后拆除之前创建的资源。通常,我们需要创建三个任务,并指定以下依赖项:

create_resource >> run_query >> delete_resource

有了这些新功能,我们现在可以轻松地将第一个和最后一个任务分别标记为设置和拆卸:

create_resource.as_setup() >> run_query >> delete_resource.as_teardown()
create_resource >> delete_resource

# equivalent notation
create_resource >> run_query >> delete_resource.as_teardown(setups=create_resource)

注:

  • 当run_query任务被清除时,create_resource(设置)和delete_resource(拆卸)任务也会被清除。
  • 当run_query失败时,拆卸任务delete_resource仍会运行。
  • create_resource和delete_resource状态不会用于确定DAG运行是否成功。这意味着即使只有run_query任务成功,DAG也将被标记为成功。

►►► 放弃对Python 3.7的支持

此外,Airflow 2.7.0已经终止了对Python 3.7的支持。为了使用Airflow 2.7.0,你需要有以下Python版本之一:

  • 3.8
  • 3.9
  • 3.10
  • 或者3.11

请注意Python社区不再支持Python 3.7。如果你还在使用它(即使不是在Airflow环境中),一定要升级到最新的版本。

►►► “airflow db migrate”命令

db init和db upgrade命令已被弃用。相反,你应该使用airflow db migrate命令来创建或升级Airflow数据库。

同样,load_default_connections配置选项也已被弃用。为了创建默认连接,需要在执行完airflow db migrate命令后,执行airflow connections create-default-commenctions命令。

►►► 一些安全更新

如前所述,最新的Airflow 版本的主要焦点是使其更安全,以下是一些与安全相关的更改:

  • 测试连接功能现在默认禁用。如果你仍然需要启用它,你可以在airflow.cfg的core部分指定test_connection标志,或者通过设置环境变量AIRFLOW__CORE__TEST_CONNECTION。
  • /dags/*/dagRuns/*/taskInstances/*/xcomEntries/* API端点现在禁用deserialize选项。

当处理SMTP SSL连接时,上下文现在使用Python默认的default_ssl_contest上下文。

►►► 尝试Airflow 2.7

如果你想测试新功能,我建议你在本地机器上通过Docker运行Airflow。你可以在下面的链接中找到分步指南,可以帮助你在不到一分钟的时间内启动并运行它。

链接:https://towardsdatascience.com/run-airflow-docker-1b83a57616fb

►►► 最后的想法……

跟上最新的Airflow版本,确保你可以访问最新的功能以及任何新的安全补丁,这样你就不会让自己夜不能寐。

最新的Airflow版本带来了大量的新功能,改进,错误修复,文档更新和安全补丁。测试它非常重要,如果可能的话,升级你的应用实例,以便充分利用它,同时增强安全性。

在本文中,我们只介绍了Airflow2.7.0中引入的更改的一小部分。你可以在发布说明中查看最新版本中包含的所有更改的完整列表。

链接:https://airflow.apache.org/docs/apache-airflow/2.7.0/release_notes.html#airflow-2-7-0-2023-08-14

在本文中,我们只介绍了Airflow2.7.0中引入的更改的一小部分。你可以在发布说明中查看最新版本中包含的所有更改的完整列表。你还可以订阅我们的YouTube频道,观看大量大数据行业相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Giorgos Myrianthous
翻译作者:文玲
美工编辑:过儿
校对审稿:Chuang
原文链接:https://towardsdatascience.com/airflow-2-7-0-505f7cda9fd4