這是一本理論高度概括的書(shū),講解流式處理核心、本質(zhì)的概念、特性、設(shè)計(jì)和方法。本書(shū)分為兩部分:第一部分以Beam的編程模型為抓手討論流處理的種種核心問(wèn)題,重點(diǎn)是相對(duì)高層次地討論批處理模型以及流處理模型;第二部分討論流與表的二象性,即兩者之間的類比與差異,對(duì)概念進(jìn)行深入探討,并討論關(guān)于流處理的“流與表”的思考方式。本書(shū)還概要瀏覽大數(shù)據(jù)處理系統(tǒng)的家族歷史,深入討論流式系統(tǒng)發(fā)展領(lǐng)域的一些重要貢獻(xiàn)。此外,本書(shū)配有大量的動(dòng)畫(huà)示意圖,讀者可以在線查看相關(guān)動(dòng)圖示例。 本書(shū)覆蓋流式系統(tǒng)的核心理論和本質(zhì)概念,適合大數(shù)據(jù)系統(tǒng)愛(ài)好者、相關(guān)專業(yè)學(xué)生、數(shù)據(jù)工程師、數(shù)據(jù)科學(xué)家和開(kāi)發(fā)人員閱讀和參考。盡管本書(shū)只是流式系統(tǒng)的導(dǎo)論讀物,但是仍然需要讀者了解大數(shù)據(jù)處理系統(tǒng)的基本原理并具備相關(guān)的使用經(jīng)驗(yàn)。
1.本書(shū)從宏觀層面介紹流計(jì)算,并介紹處理實(shí)時(shí)數(shù)據(jù)流的內(nèi)容、地點(diǎn)、時(shí)間和方式。
2.本書(shū)一作泰勒·阿基道是谷歌公司的高級(jí)軟件工程師、數(shù)據(jù)處理語(yǔ)言和系統(tǒng)部門(mén)的技術(shù)負(fù)責(zé)人,擁有豐富的經(jīng)驗(yàn),負(fù)責(zé)谷歌的Apache Beam、Cloud Dataflow、Flume、MapReduce和MillWheel等內(nèi)部數(shù)據(jù)處理工具。他還是Apache Beam PMC的創(chuàng)始成員。
3.本書(shū)譯者為阿里技術(shù)團(tuán)隊(duì),由專門(mén)的流式系統(tǒng)技術(shù)的推廣團(tuán)隊(duì),可以借勢(shì)推廣。
泰勒·阿基道(Tyler Akidau)是谷歌的高級(jí)軟件工程師、數(shù)據(jù)處理語(yǔ)言與系統(tǒng)團(tuán)隊(duì)的技術(shù)負(fù)責(zé)人,也是Apache Beam PMC的創(chuàng)始成員。 斯拉瓦·切爾尼亞克(Slava Chernyak)是谷歌西雅圖辦公室的高級(jí)軟件工程師。他花了6年多的時(shí)間研究在谷歌內(nèi)部使用的大規(guī)模流數(shù)據(jù)處理系統(tǒng)。 魯文·拉克斯(Reuven Lax)是谷歌西雅圖辦公室的高級(jí)軟件工程師,過(guò)去十多年他一直在幫助制定谷歌的數(shù)據(jù)處理和分析的戰(zhàn)略。他也是Apache Beam PMC的成員。
第 一部分 Beam模型
第 1章 流式處理入門(mén)2
1.1 術(shù)語(yǔ):什么是流3
1.2 數(shù)據(jù)處理模式9
1.3 小結(jié)17
第 2章 數(shù)據(jù)處理的來(lái)龍去脈19
2.1 路線圖20
2.2 批基礎(chǔ):定義及位置21
2.3 開(kāi)始流處理:時(shí)機(jī)及方法27
2.4 小結(jié)44
第3章 水位47
3.1 定義47
3.2 源端水位的創(chuàng)建49
3.3 水位傳播53
3.4 百分比水位65
3.5 處理時(shí)間水位67
3.6 案例分析69
3.7 小結(jié)75
第4章 高級(jí)開(kāi)窗76
4.1 時(shí)機(jī)/位置:處理時(shí)間開(kāi)窗76
4.2 位置:會(huì)話82
4.3 位置:自定義開(kāi)窗85
4.4 小結(jié)95
第5章 精確一次及副作用97
5.1 為什么精確一次這么重要97
5.2 準(zhǔn)確性與完整性98
5.3 確保在混洗中精確一次101
5.4 解決確定性102
5.5 性能102
5.6 源端的精確一次105
5.7 匯端的精確一次106
5.8 用例107
5.9 其他系統(tǒng)110
5.10 小結(jié)112
第二部分 流和表
第6章 流和表114
6.1 流和表的基礎(chǔ):“流表相對(duì)論”的特殊理論115
6.2 批處理與流和表116
6.3 流和表世界的定義、位置、時(shí)機(jī)和方法121
6.4 “流表相對(duì)論”的一般理論137
6.5 小結(jié)139
第7章 持久化狀態(tài)的實(shí)踐141
7.1 動(dòng)機(jī)141
7.2 隱式狀態(tài)144
7.3 廣義狀態(tài)149
7.4 小結(jié)162
第8章 流式SQL163
8.1 什么是流式SQL163
8.2 回顧:流和表的設(shè)計(jì)偏好174
8.3 展望:邁向健壯的流式SQL184
8.4 小結(jié)204
第9章 流式連接207
9.1 所有連接都是流式連接207
9.2 非開(kāi)窗連接208
9.3 開(kāi)窗連接219
9.4 小結(jié)234
第 10章 大規(guī)模數(shù)據(jù)處理的演化236
10.1 MapReduce237
10.2 Hadoop241
10.3 Flume242
10.4 Storm247
10.5 Spark250
10.6 MillWheel252
10.7 Kafka256
10.8 Cloud DataFlow259
10.9 Flink261
10.10 Beam265
10.11 小結(jié)268