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