流媒体:滚动窗口与微批处理

She*_*oli 5 stream-processing apache-spark spark-streaming apache-flink flink-streaming

流处理中 5 秒的滚动窗口与微批处理时 5 秒的微批次有何不同?两者都有一个 5 秒的非重叠窗口,在此期间它们处理记录,然后继续前进。

据我所知,流处理中有一个时间概念:事件、摄取和处理时间。我们是否可以推断使用微批处理的流处理只不过是使用具有摄取时间或处理时间的滚动窗口的流处理?

She*_*oli 0

经过更多研究后,这是我的结论

  • Spark 的早期版本至少是 1.6,据我所知(请随时纠正我),流处理的概念是基于微批处理,其中流处理被作为批处理的特殊情况进行处理,以便可以处理流以有限(非常小)持续时间的微批次形式。

  • 翻滚窗口是进化的流处理模型的一部分(其中数据不断进入一个巨大的无界表,并且批处理被视为流处理的特殊情况),它的工作原理是:

    1. 挡住了无边无际的巨大窗户/桌子的“过去”
    2. 然后期待在未来有限的时间内(例如 10 秒)将入站数据发送到这个巨大的窗口
    3. 处理它
    4. 返回步骤 1

因此,作为黑盒的微批处理与滚动窗口非常相似,但区别实际上在于用于实现窗口处理的底层架构/设计/方法。

资料来源: