💡
原文英文,约3000词,阅读约需11分钟。
📝
内容提要
本文介绍了Apache Spark Structured Streaming的性能提升计划,通过改进offset管理来降低处理延迟。经过评估,这些改进使延迟提高了68-75%,即从700-900毫秒降至150-250毫秒。本文还介绍了异步进度跟踪和异步日志清理等性能改进的详细信息,并提供了性能基准测试结果。
🎯
关键要点
- Apache Spark Structured Streaming是领先的开源流处理平台,支持批处理和流处理的统一API。
- 通过改进offset管理,降低了处理延迟,延迟提高了68-75%,从700-900毫秒降至150-250毫秒。
- 这些改进主要针对实时监控和警报等操作性用例,满足了大部分操作工作负载的SLA要求。
- 操作性工作负载需要低于一秒的延迟,适用于实时警报和监控等应用。
- offset管理用于跟踪数据处理进度,Spark Structured Streaming依赖于持久化和管理offset。
- 在每个微批处理的开始和结束时进行offset管理操作,这些操作直接影响处理延迟。
- 引入异步进度跟踪功能,允许在数据处理的同时异步更新offsetLog和commitLog,从而显著提高延迟性能。
- 异步日志清理功能将日志清理操作异步化,减少对实际数据处理的延迟影响。
- 基准测试显示,异步进度跟踪和异步日志清理的组合可以将延迟降低至100毫秒以下。
- 这些性能改进从DBR 11.3版本开始在Databricks Lakehouse Platform上可用,并已贡献给Apache Spark 3.4及以后的版本。
- 未来将支持更多类型的工作负载,并继续寻找Structured Streaming的改进空间。
➡️