31 | Dataflow(三):一个统一的编程模型
徐文浩
你好,我是徐文浩。
在过去的几讲里,我们看到了大数据的流式处理系统是如何一步一步进化的。从最早出现的 S4,到能够做到“至少一次”处理的 Storm,最后是能够做到“正好一次”数据处理的 MillWheel。你应该能发现,这些流式处理框架,每一个都很相似,它们都采用了有向无环图一样的设计。但是在实现和具体接口上又很不一样,每一个框架都定义了一个属于自己的逻辑。
S4 是无中心的架构,一切都是 PE;Storm 是中心化的架构,定义了发送数据的 Spout 和处理数据的 Bolt;而 MillWheel 则更加复杂,不仅有 Computation、Stream、Key 这些有向无环图里的逻辑概念,还引入了 Timer、State 这些为了持久化状态和处理时钟差异的概念。
和我们在大数据的批处理看到的不同,S4、Storm 以及 MillWheel 其实是某一个数据处理系统,而不是 MapReduce 这样高度抽象的编程模型。每一个流式数据处理系统各自有各自对于问题的抽象和理解,很多概念不是从模型角度的“该怎么样”抽象出来,而是从实际框架里具体实现的“是怎么样”的角度,抽象出来的。
不过,我们也看到了这些系统有很多相似之处,它们都采用了有向无环图模型,也都把同一个 Key 的数据在逻辑上作为一个单元进行抽象。随着工业界对于流式数据处理系统的不断研发和运用,到了 2015 年,仍然是 Google,发表了今天我们要解读的这一篇《The Dataflow Model》的论文。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
Dataflow模型是Google的重要技术成果,提出了统一的编程模型,将流处理和批处理整合在一起。该模型引入了时间维度,强调了批处理实质上是流处理的一种特殊情况。文章介绍了Dataflow的基础模型和流批一体的概念,重点讲解了时间窗口的分配与合并,以及Dataflow模型中的重要函数AssignWindows和MergeWindows。Dataflow模型的突出特点在于能够处理乱序数据,保证计算结果的准确性,并实现对数据的持续化简和统计。此外,文章还介绍了触发器和增量数据处理的概念,以及Dataflow如何解决乱序数据处理中的问题。总体而言,Dataflow模型是一个流批一体的计算模型,能够处理无边界的流式数据和有边界的固定数据,为大数据的流式处理提供了高效的抽象计算模型。文章内容丰富,对于想要深入了解流式数据处理系统的读者具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大数据经典论文解读》,新⼈⾸单¥59
《大数据经典论文解读》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- Gavinwindow merging 中结果有误(文中位置为:论文中的图5,如何通过AssignWindows和MergeWindows来进行数据计算,数据乱序也不影响计算结果) ,取的是window end, 而非window start,对应Google 论文应该是Figure 4 https://storage.googleapis.com/pub-tools-public-publication-data/pdf/43864.pdf2022-01-193
- 那时刻对于有边界的固定数据,我们当然可以通过重放日志把数据给到 Dataflow 系统, 我之前采用的是global window以及default trigger来处理的2021-12-2212
- piboyesql支持这些功能了吗?2021-12-261
- 在路上徐老师好,DataFlow论文第3.2节Design Principles,提到Support robust analysis of data in the context in which they occurred,数据的健壮分析是指什么?2021-12-24
收起评论