airflow Apache Airflow 2.10.4¶
为什么要使用airflow¶
在当今数据驱动的世界中,企业面临着如何高效管理和调度复杂工作流的挑战。想象一下,一个大型电商平台,每天处理成千上万的订单,背后是无数的数据处理任务。这些任务需要协调、调度和监控,而传统的手动管理方式不仅低效,还容易出错。Apache Airflow应运而生,它不仅能自动化这些流程,还能提供可视化的监控界面,让开发者和数据工程师能够轻松掌控整个工作流。选择Airflow,就是选择了一种高效、灵活且可扩展的解决方案,帮助企业在竞争中立于不败之地。
airflow是什么¶
Apache Airflow是一个开源的工作流调度平台,旨在帮助用户编排和管理复杂的数据处理任务。它允许用户通过编写Python代码定义工作流,并提供强大的调度和监控功能。Airflow的核心理念是“可编程的工作流”,用户可以根据自己的需求灵活地设计和调整任务。
入门示例¶
假设你是一名数据工程师,负责从多个数据源提取数据并进行处理。你可以使用Airflow创建一个工作流,首先从数据库中提取数据,然后进行数据清洗,最后将处理后的数据加载到数据仓库中。具体来说,你可以定义三个任务:extract_data
、transform_data
和load_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以及更新文档,进一步提升了平台的稳定性和用户体验。这些改进将帮助用户更高效地管理和调度复杂的工作流,确保数据处理的准确性和可靠性。