1月10日,Apache 软件基金会宣布,Apache Beam 已经成功地从孵化毕业,成为基金会的一个新的顶级项目。虽然简单来说,这里只是开源了一个SDK,但却显示了Google在统一大数据处理方面的野心。
一. Apache Beam是什么?
Apache Beam 是 Google 在2016年2月份贡献给 Apache 基金会孵化的项目。项目的名称表明了其设计:结合了批处理(Batch)模式和数据流(strEAM)处理模式。
Apache Beam 的主要目标是统一批处理和流处理的编程范式,为无限、乱序、web-scale的数据集处理提供简单灵活,功能丰富以及表达能力十分强大的SDK。它基于一种统一模式,用于定义和执行数据并行处理Pipeline。项目包含构架于各个底层平台Runner之上的Adapter,希望基于 Beam 开发的数据处理程序可以执行在任意的分布式计算引擎上。
那么,这种模式是否存在呢?Stream和Batch是否可以统一?和Lamda架构有什么区别?
Beam的核心就在两篇文章上:Streaming 101和Streaming 102。
Beam Model从下面四个维度归纳了用户在进行数据处理的时候需要考虑的问题:
What:如何对数据进行计算?例如,Sum、Jo