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