apache-spark - 流媒体 : tumbling window vs microbatching

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

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

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

最佳答案

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

  • 早期版本的 Spark 至少是 1.6,据我所知(随时纠正我),流处理的概念基于微批处理,其中流处理作为批处理的特殊情况处理,以便可以处理流在有限(非常小)持续时间的微批次中。
  • Tumbling window 是进化的流处理模型的一部分(其中数据不断进入一个巨大的无界表,批处理被视为流处理的一种特殊情况),它的工作原理是:
  • 挡住无界巨窗/ table 的“过去”
  • 然后 期待在 future 的有限时间内将入站数据发送到这个巨大的窗口,比如 10 秒
  • 处理它
  • 返回步骤 1

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

    来源:
  • Martin Klepmann 设计的数据密集型应用程序
  • http://blog.madhukaraphatak.com/introduction-to-flink-streaming-part-2/
  • 关于apache-spark - 流媒体 : tumbling window vs microbatching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55933494/

    相关文章:

    java - 我无法在 spark2 中设置 StreamingLogLevel

    java - Apache 弗林克 : Correctly make async webservice calls within MapReduce()

    hadoop - 在任何时间范围内进行统计的唯一身份访问者都算在内吗?

    scala - 一键将一个大拼花文件拆分为多个拼花文件

    apache-spark - 使用ALS进行训练时,Spark会给出StackOverflowError

    hadoop - 使用 pyspark 流式传输到 HBase

    scala - 在scala中动态创建变量

    java - 通过 apache spark 将行收集为列表

    java - 在 Stream Start 之前访问 Flink Classloader

    java - Apache 弗林克 : When using count() on DataSet only this job will be executed