跳转至

airflow Apache Airflow 2.10.4

为什么要使用airflow

在当今数据驱动的世界中,企业面临着如何高效管理和调度复杂工作流的挑战。想象一下,一个大型电商平台,每天处理成千上万的订单,背后是无数的数据处理任务。这些任务需要协调、调度和监控,而传统的手动管理方式不仅低效,还容易出错。Apache Airflow应运而生,它不仅能自动化这些流程,还能提供可视化的监控界面,让开发者和数据工程师能够轻松掌控整个工作流。选择Airflow,就是选择了一种高效、灵活且可扩展的解决方案,帮助企业在竞争中立于不败之地。

airflow是什么

Apache Airflow是一个开源的工作流调度平台,旨在帮助用户编排和管理复杂的数据处理任务。它允许用户通过编写Python代码定义工作流,并提供强大的调度和监控功能。Airflow的核心理念是“可编程的工作流”,用户可以根据自己的需求灵活地设计和调整任务。

入门示例

假设你是一名数据工程师,负责从多个数据源提取数据并进行处理。你可以使用Airflow创建一个工作流,首先从数据库中提取数据,然后进行数据清洗,最后将处理后的数据加载到数据仓库中。具体来说,你可以定义三个任务:extract_datatransform_dataload_data。通过Airflow的调度功能,你可以设置这些任务的执行顺序,并在任务失败时自动重试。这种自动化的工作流不仅提高了效率,还减少了人为错误的可能性。

airflow Apache Airflow 2.10.4版本更新了什么

Apache Airflow 2.10.4版本带来了多项重要更新,包括对priority_weight的32位整数范围限制,以避免数据库引擎的兼容性问题。此外,修复了一些关键的bug,例如动态映射任务的统计信息和多行日志消息的显示问题。该版本还增强了任务实例的管理,确保在任务被卡住时能够重新排队。最后,更新了文档以提供更好的用户指导。

更新日志

重要变化

TaskInstance priority_weight 限制在32位有符号整数范围内

一些数据库引擎限制为32位整数值。由于一些用户报告了权重回滚到负值的错误,我们决定将该值限制为32位整数。即使在Python内部支持更小或更大的64位值,priority_weight也仅存储-2147483648到2147483647之间的值。

Bug修复

  • 修复了动态映射任务在自动重试失败任务后的统计信息。
  • 修复了过滤后日志中多行消息的错误显示。
  • 允许在指标验证中使用"/"。
  • 修复了甘特图闪烁问题。
  • 修复了无法从连接表单中删除字段的问题。
  • 在部分任务导入时检查池槽,而不是执行时。
  • 避免按尝试编号对动态映射任务的任务实例统计进行分组。
  • 当任务在队列中卡住时重新排队。
  • 抑制检查敏感值时的警告。
  • 修复了get_task_instance_try_details以返回适当的模式。
  • 日志消息源细节被分组。
  • 修复了UI中任务尝试的重复问题。
  • 在OpenAPI规范中添加正确的mime类型。
  • 如果链接为空或null,则禁用额外链接按钮。
  • 禁用按执行日期对XCom列表进行排序。
  • 修复了需要在Python 3.12中至少为1.26的venv numpy示例。
  • 修复了在索引0上映射任务中的尝试选择器。
  • 防止在动态映射任务中使用trigger_rule="always"
  • 防止在裸任务中的任务生成映射中使用trigger_rule=TriggerRule.ALWAYS

仅文档更改

  • 更新了关于容器/helm的XCom文档。

其他

  • 访问入口或出口事件时通过字符串引发弃用警告。

总结

在Apache Airflow 2.10.4版本中,开发团队通过限制priority_weight的范围、修复多个关键bug以及更新文档,进一步提升了平台的稳定性和用户体验。这些改进将帮助用户更高效地管理和调度复杂的工作流,确保数据处理的准确性和可靠性。