购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第2章
数据处理的来龙去脉

本章我们讨论一些具体的问题。

第1章关注了3个主要领域: 术语 ,当我使用如“流式”这样的重载词语时,术语能够准确地表达我的意思; 批处理和流式 ,比较这两类系统在理论上的功能,并假设只需要正确性和有关时间推断的工具这两样东西就可以使流式系统超越它们的批处理对手; 数据处理模式 ,关注在处理有界数据和无界数据时,批处理系统和流式系统所采用的概念性方法。

在本章中,我们将进一步关注第1章中提及的数据处理模式,但是会结合具体示例的上下文更详细地介绍这部分内容。到完成本章学习时,大家将会掌握我认为的针对健壮乱序数据处理所需的一套核心原则和概念。这些关于时间推断的工具,会真正地帮助你超越传统的批处理。

为了让你了解实际的情况,我会使用Apache Beam的片段代码,结合延时图 来直观地表示所涉及的概念。Apache Beam 是用于批处理和流式处理的统一编程模型和可移植层,具有支持多语言(如Java、Python等)的一套具体的SDK。因此,使用Apache Beam编写的流水线可以移植到任何支持的执行引擎(如Apache Apex、Apache Flink、Apache Spark和Cloud Dataflow等)上执行。

这里的例子使用Apache Beam不是因为这是一本关于Beam的书(确实不是),而是因为Apache Beam最完整地体现了本书中描述的概念。在最初编写“Streaming 102”时(在那个时候,文章中采用的仍然是来自谷歌的Cloud Dataflow的Dataflow模型,而不是来自Apache Beam的Beam模型),Dataflow模型确实是当时唯一能够为我们列举的所有这些示例提供所需表达力的系统。一年半之后,我可以很高兴地说,业界已经发生了很大变化,并且现存的大部分主要系统已经完成或正在朝着支持类似本书所描述的模型的方向发展。因此,请放心,虽然本书中涉及的概念是通过Beam进行介绍的,但可以说,它将同样适用于未来你将遇到的大多数其他系统。 PbZaHOrZNGQFWE0JHpd3z6UQN5OFsKtrc3I5bh1Xb9ChSVQr+cgdCEi0HJBNNsK9

点击中间区域
呼出菜单
上一章
目录
下一章
×