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

时间:2019-05-01 08:26:48

标签: apache-spark spark-streaming apache-flink flink-streaming stream-processing

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

我了解流处理中有时间的概念:事件,摄取和处理时间。我们能推断出使用微分批处理的流处理只不过是使用带有摄取时间或处理时间的翻滚窗口进行的流处理吗?

2 个答案:

答案 0 :(得分:0)

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

  • Spark的早期版本至少为1.6,就我所知(随时纠正我),流处理的概念基于处理处理的微批处理作为批处理的一种特殊情况,以便可以在有限(非常小的)持续时间的微批处理中处理流。

  • 翻滚窗口是演进的流处理模型的一部分(数据不断进入巨大的无界表,而批处理被视为流处理的特例),它的工作方式如下:

    1. 阻止无限的巨大窗口/表的“过去”
    2. 然后然后期待在未来的有限时间内(例如10秒钟)进入这个巨大窗口的入站数据
    3. 处理
    4. 回到步骤1

因此,作为批处理的微批处理与滚动窗口非常相似,但是区别实际上在于实现窗口处理所采用的基础体系结构/设计/方法。

来源:

答案 1 :(得分:0)

根据我的理解,从结果的角度来看,它们非常相似。他们将允许在给定的时间段内处理部分数据。

由于设计上的局限性,Spark Streaming使用给定的持续时间读取了很小一部分数据,因此您对Spark没错。

我认为它们之间的最大区别是目的。 Spark中的微批处理用于限制源中的消耗数据。但是Flink中的Windows用于处理数据,它们是在读取后创建的,因此它们并不会真正影响消费者的读取速度。