Spark Structured Streaming 引入实时模式,实现超低延迟
Apache Spark Structured Streaming 长期以来一直是高规模、任务关键型数据管道的强大基础,支持从复杂的流式提取、转换、加载 (ETL) 操作到近实时分析和机器学习应用程序的一切。现在,随着“实时模式”的引入,一项重大演进正在进行中。这是一种新型触发器,旨在将 Spark 的能力扩展到全新的超低延迟工作负载类别。这项创新能够事件一到达就进行处理,实现低至数十毫秒的延迟,标志着即时数据处理需求方面的巨大飞跃。
与固定时间表运行的 ProcessingTime
触发器或处理所有可用数据后停止的 AvailableNow
触发器不同,实时模式提供连续数据处理。这意味着结果一旦准备好就会立即发出,从而实现真正的即时用例。企业现在可以利用 Spark 应对需要即时响应的场景,例如实时欺诈检测、动态个性化以及以最小延迟提供机器学习特征。至关重要的是,这种增强功能可无缝集成,现有 Structured Streaming 用户无需更改代码库或进行平台迁移。这种新模式正在贡献给开源 Apache Spark 项目,目前已在 Databricks 上开放公开预览。
实时模式的核心是通过运行长期流式作业来实现连续、低延迟处理,这些作业并发调度阶段。数据通过一种称为流式混洗(streaming shuffle)的技术在内存中任务之间流动。这种方法显著降低了协调开销,消除了传统微批处理模式固有的固定调度延迟,并持续提供亚秒级性能。Databricks 内部测试展示了令人印象深刻的性能,根据所涉及数据转换的复杂性,第 99 百分位(p99)延迟范围从几毫秒到大约 300 毫秒。例如,一些基准测试显示 p99 延迟低至个位数毫秒,证实了其满足严苛实时应用的能力。
实时模式对需要快速响应时间的流式应用程序具有深远影响,特别是那些对关键业务运营至关重要的应用程序。早期采用者已将这项技术部署到各种工作负载中,展示了其变革潜力。例如,一家全球性银行现在能够实时处理来自 Kafka 的信用卡交易,并在惊人的 200 毫秒内标记可疑活动。这项能力大大降低了金融风险,并加快了响应时间,而无需彻底改造其现有基础设施。
除了金融服务,实时模式还在零售和媒体领域彻底改变了个性化体验。一家 OTT(Over-The-Top)流媒体提供商现在可以在用户看完节目后立即更新内容推荐,而一家领先的电子商务平台则在客户浏览时重新计算产品优惠,通过亚秒级反馈循环保持高度参与度。同样,主要的旅游网站正在利用此模式实时跟踪和显示用户在不同设备上的近期搜索,每次新查询都会立即更新会话缓存,从而实现个性化结果和自动填充,且没有任何可感知的延迟。在机器学习领域,一款食品配送应用程序正在使用实时模式在毫秒级更新司机位置和准备时间等特征。这些更新直接馈送到机器学习模型和面向用户的应用程序中,从而提高预计送达时间(ETA)的准确性并增强客户体验。
Network International 首席数据工程师 Raja Kanchumarthi 强调了其显著优势,他表示:“对于一个任务关键型支付授权管道,我们在其中执行加密和其他转换,我们实现了 P99 端到端延迟仅为 15 毫秒。我们乐观地认为,可以在我们的数据流中扩展这种低延迟处理,同时持续满足严格的服务水平协议(SLA)。”这些多样化的应用凸显了实时模式的多功能性,展示了其将数据转化为即时决策的能力,涵盖从物联网传感器警报、供应链可见性到实时游戏遥测和应用内个性化等一系列用例。