本页介绍结构化流式处理中实时模式背后的概念,包括它是什么、实现低延迟的方式以及何时使用它。
什么是实时模式?
实时模式是结构化流式处理的触发器类型,可实现超低延迟数据处理,端到端延迟低至 5 毫秒。 对需要立即响应流数据(例如欺诈检测、实时个性化和即时决策系统)的作工作负荷使用实时模式。
实时模式如何实现低延迟
实时模式通过以下方式改进执行体系结构:
- 执行长时间运行的批处理(默认值为 5 分钟),系统在源中可用时处理数据。
- 同时调度查询的所有阶段。 这要求可用任务槽数等于或大于批处理中所有阶段的任务数。
- 使用流式洗牌生成阶段后,立即在阶段之间传递数据。
在批处理结束时,下一批启动之前,结构化流式处理会记录进度并发布指标。 批处理持续时间影响检查点频率:
- 对于较长的批处理,检查点的发生频率较低,这意味着在发生故障时重播时间更长,并且指标的可用性会有所延迟。
- 对于较短的批次,检查点的执行频率更高,这可能会影响延迟。
Azure Databricks建议针对目标工作负荷对实时模式进行基准测试,以查找适当的触发器间隔。
何时使用实时模式
在用例需要时选择实时模式:
- 次秒延迟:需要在毫秒内响应数据的应用程序。 例如,如果欺诈分数超出基于异常位置、大型交易大小或快速支出模式的阈值,则实时阻止或标记信用卡交易。
- 操作决策:基于传入数据触发即时操作的系统。 例如,当点击流数据显示用户一直在浏览某个产品时传递促销消息,如果他们在接下来的 15 分钟内购买,则提供折扣。
- 持续处理:数据到达时必须立即处理的工作负荷,而不是定期批处理。
在用例需要时使用微批处理模式(默认结构化流式处理触发器):
- 分析处理:ETL 管道、数据转换和奖牌体系结构实现,其中延迟要求以秒或分钟为单位进行度量。
- 成本优化:不需要次秒延迟的工作负荷,因为实时模式需要专用的计算资源。
- 检查点频率很重要:支持更频繁设置检查点的应用程序有助于更快地恢复。
功能支持和限制
有关支持的环境、语言、计算类型、源、接收器、运算符和已知限制的完整列表,请参阅 实时模式参考。