流式系統 Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing

[美] 泰勒·阿基道(Tyler Akidau) 斯拉瓦·切爾尼亞克(Slava Chernyak) 魯文·拉克斯(Reuven Lax)

  • 流式系統-preview-1
  • 流式系統-preview-2
流式系統-preview-1

相關主題

商品描述

這是一本理論高度概括的書,講解流式處理核心、本質的概念、特性、設計和方法。本書分為兩部分:第一部分以Beam的編程模型為抓手討論流處理的種種核心問題,重點是相對高層次地討論批處理模型以及流處理模型;第二部分討論流與表的二象性,即兩者之間的類比與差異,對概念進行深入探討,並討論關於流處理的“流與表”的思考方式。本書還概要瀏覽大數據處理系統的家族歷史,深入討論流式系統發展領域的一些重要貢獻。此外,本書配有大量的動畫示意圖,讀者可以在線查看相關動圖示例。 本書覆蓋流式系統的核心理論和本質概念,適合大數據系統愛好者、相關專業學生、數據工程師、數據科學家和開發人員閱讀和參考。盡管本書只是流式系統的導論讀物,但是仍然需要讀者瞭解大數據處理系統的基本原理並具備相關的使用經驗。

作者簡介

泰勒·阿基道(Tyler Akidau)是谷歌的高级软件工程师、数据处理语言与系统团队的技术负责人,也是Apache Beam PMC的创始成员。 斯拉瓦·切尔尼亚克(Slava Chernyak)是谷歌西雅图办公室的高级软件工程师。他花了6年多的时间研究在谷歌内部使用的大规模流数据处理系统。 鲁文·拉克斯(Reuven Lax)是谷歌西雅图办公室的高级软件工程师,过去十多年他一直在帮助制定谷歌的数据处理和分析的战略。他也是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 源端水位的創建 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 其他系統 110

5.10 小結 112

第二部分 流和表

第6章 流和表 114

6.1 流和表的基礎:“流表相對論”的特殊理論 115

6.2 批處理與流和表 116

6.3 流和表世界的定義、位置、時機和方法 121

6.4 “流表相對論”的一般理論 137

6.5 小結 139

第7章 持久化狀態的實踐 141

7.1 動機 141

7.2 隱式狀態 144

7.3 廣義狀態 149

7.4 小結 162

第8章 流式SQL 163

8.1 什麽是流式SQL 163

8.2 回顧:流和表的設計偏好 174

8.3 展望:邁向健壯的流式SQL 184

8.4 小結 204

第9章 流式連接 207

9.1 所有連接都是流式連接 207

9.2 非開窗連接 208

9.3 開窗連接 219

9.4 小結 234

第 10章 大規模數據處理的演化 236

10.1 MapReduce 237

10.2 Hadoop 241

10.3 Flume 242

10.4 Storm 247

10.5 Spark 250

10.6 MillWheel 252

10.7 Kafka 256

10.8 Cloud DataFlow 259

10.9 Flink 261

10.10 Beam 265

10.11 小結 268