在SparkStreaming中窗口统计分析:Window Operation(设置窗口大小WindowInterval和滑动大小SlideInterval),按照Streaming 流式应用接收数据的时间进行窗口设计的,其实是不符合实际应用场景的。
例如,在物联网数据平台中,每个设备产生的数据,其中包含数据产生的时间,然而数据需要经过一系列采集传输才能被流式计算框架处理:SparkStreaming,此过程需要时间的,再按照处理时间来统计业务的时候,准确性降低,存在不合理性。
在结构化流Structured Streaming中窗口数据统计时间是基于数据本身事件时间EventTime字段统计,更加合理性,官方文档:
window-operations-on-event-time
1. 时间概念
在Streaming流式数据处理中,按照时间处理数据,其中时间有三种概念:
- 1)、事件时间EventTime,表示数据本身产生的时间,该字段在数据本身中;
- 2)、注入时间IngestionTime,表示数据到达流式系统时间,简而言之就是流式处理系统接收到数据的时间;
- 3)、处理时间ProcessingTime,表示数据被流式系统真正开始计算操作的时间。
本文深入探讨Spark Structured Streaming中的事件时间窗口分析,强调其相对于处理时间的优势。文章详细介绍了事件时间、注入时间和处理时间的概念,并讨论了事件时间窗口的生成规则。还讲解了延迟数据处理,包括水位(Watermarking)机制,如何通过水位线自动清理旧状态,并以更新和追加两种输出模式为例进行说明。
订阅专栏 解锁全文
2617

被折叠的 条评论
为什么被折叠?



