Apache Spark Structured Streaming 延迟降至亚秒级

Apache Spark Structured Streaming 延迟降至亚秒级

💡 原文英文,约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的改进空间。
➡️

继续阅读