注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計Flink SQL與DataStream:入門、進階與實戰(zhàn)

Flink SQL與DataStream:入門、進階與實戰(zhàn)

Flink SQL與DataStream:入門、進階與實戰(zhàn)

定 價:¥129.00

作 者: 羊藝超
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787111739029 出版時間: 2023-12-01 包裝: 平裝-膠訂
開本: 16開 頁數: 字數:  

內容簡介

  內容簡介這是一本從使用和定制開發(fā)雙重視角,循序漸進地講解Flink的分布式系統架構設計、流計算API設計、時間處理、狀態(tài)管理等核心技術的原理和實現的著作。它面向Flink的初學者,內容沿著基礎知識、實際問題和解決方案這條主線展開,不僅層層剖析了Flink學習中的重點和難點,而且還通過大量案例展示了如何快速獲得工程化實踐能力。全書共11章,主要內容如下:(1)Flink基礎知識(第1、2章)主要介紹了Flink的定位、核心特性、API分類,演示了如何搭建Flink作業(yè)的基礎環(huán)境、如何創(chuàng)建一個Flink項目以及如何開發(fā)入門應用程序WordCount,并結合該應用程序說明了常見Flink作業(yè)的骨架結構。(2)Flink分布式架構及核心概念(第3章)主要內容包括Flink作業(yè)的運行時架構、部署模式、資源提供框架,以及開發(fā) Flink作業(yè)時涉及的核心概念,對于后續(xù)學習Flink DataStream API和Flink SQL API很有幫助。(3)Flink DataStream API(第4~6章)講解了Flink DataStream API的核心知識,包括執(zhí)行環(huán)境、數據源、數據簡單轉換、數據分組與聚合、數據匯等,并講解了Flink DataStream API中的時間語義、時間窗口、有狀態(tài)計算和檢查點這四大“王*牌武器”的由來與實現原理。(4)Flink有狀態(tài)流處理API(第7章)Flink DataStream API不能優(yōu)雅地解決窗口使用不靈活和分流成本高這兩個問題,于是Flink提供了有狀態(tài)流處理API。本章主要講解了Flink有狀態(tài)流處理API解決上述兩個問題的方法。(5)Flink Table API與SQL API(第8~11章)Flink Table API和Flink SQL API的底層原理相同,可以相互轉換,但Flink SQL API更為簡單和常用。這4章分別介紹了Flink Table API、Flink SQL API 的功能,以及使用SQL實現流處理的核心技術,結合大量代碼示例著重介紹了Flink SQL API的語法、函數、參數配置及性能優(yōu)化方法。

作者簡介

  羊藝超資深大數據開發(fā)工程師,現就職于某頭部短視頻公司。擁有多年流式計算開發(fā)、優(yōu)化、保障和治理經驗,以及從0到1使用Flink SQL建設實時數倉的經驗。對Flink大數據計算引擎有著深入的理解,在Flink的場景化應用方面有豐富的經驗,能夠使用Flink等技術組件解決千萬級別QPS的實時數據場景下的痛點問題。開源了自己的 Flink 學習項目 https://github.com/yangyichao-mango/flink-study。對Redis、Kafka、ClickHouse等實時數倉構建過程中依賴的引擎都較為熟悉。個人微信公眾號:大數據羊說。發(fā)表了數十篇關于實時數倉建設的原創(chuàng)文章,深受讀者喜愛。

圖書目錄

Contents目  錄
前 言
第1章 初識Flink 1
1.1 Flink定位 1
1.1.1 Flink是什么 2
1.1.2 Flink對于數據的定義 3
1.1.3 Flink的3種應用場景 4
1.1.4 Flink的3個企業(yè)應用案例 7
1.2 Flink的核心特性 9
1.2.1 Flink的5個核心特性 9
1.2.2 3種流處理引擎特性的對比 10
1.3 Flink的API 11
1.3.1 Code API 11
1.3.2 關系型API 13
1.4 與Flink搭配使用的引擎 15
1.5 本章小結 16
第2章Flink WordCount作業(yè)開發(fā)
及運行 17
2.1 基礎環(huán)境準備 17
2.2 創(chuàng)建一個Flink項目 18
2.3 Flink WordCount代碼案例 21
2.4 Flink作業(yè)的骨架結構 24
2.5 本章小結 25
第3章Flink分布式架構及核心
概念 26
3.1分布式應用與非分布式應用的
異同 27
3.2 Flink作業(yè)的運行時架構 28
3.2.1 Flink作業(yè)提交部署流程 28
3.2.2 Client 30
3.2.3 JobManager 30
3.2.4 TaskManager 31
3.3 Flink作業(yè)的3種部署模式 31
3.3.1 Session模式 32
3.3.2 Per-Job模式 33
3.3.3 Application模式 35
3.4 Flink作業(yè)的2種資源提供框架 36
3.4.1 Standalone 36
3.4.2 YARN 40
3.5開發(fā)Flink作業(yè)時涉及的核心
概念 42
3.5.1 Function 44
3.5.2 Operator 44
3.5.3 算子并行度 46
3.5.4 Operator Chain 49
3.5.5 Task和SubTask 52
3.5.6 Task Slot和共享Task Slot 53
3.5.7 算子最大并行度 54
3.6 Flink Web UI 56
3.6.1 概覽模塊 57
3.6.2 Flink作業(yè)詳情 58
3.7 本章小結 64
第4章 Flink DataStream API 65
4.1 什么是DataStream 65
4.2 執(zhí)行環(huán)境 66
4.3 數據源 67
4.3.1從數據源存儲引擎中讀取數據
的API 67
4.3.2 從Socket中讀取數據 69
4.3.3 從Kafka中讀取數據 69
4.3.4 從自定義數據源中讀取數據 74
4.4 數據簡單轉換 76
4.4.1 單流的3種數據簡單轉換 76
4.4.2 多流的4種數據簡單轉換 80
4.5 數據分組與聚合 84
4.5.1 KeyBy 85
4.5.2 Max、Min和Sum 88
4.5.3 Reduce 92
4.6 數據匯 95
4.6.1向數據匯存儲引擎寫數據的
API 95
4.6.2 向控制臺輸出數據 95
4.6.3 向Kafka寫入數據 96
4.6.4 向自定義數據匯寫入數據 99
4.7 算子間數據傳輸的8種策略 100
4.7.1 Forward 100
4.7.2 Rebalance 103
4.7.3 Shuff?le 106
4.7.4 KeyGroup 106
4.7.5 Rescale 107
4.7.6 Broadcast 108
4.7.7 Global 110
4.7.8 Custom Partition 110
4.8 數據異步I/O處理 112
4.8.1同步I/O處理導致作業(yè)
低吞吐 112
4.8.2同步I/O處理低吞吐的4種
解決方案 113
4.8.3 異步I/O處理原理 113
4.8.4 異步I/O處理API 114
4.8.5異步I/O處理API的注意
事項 117
4.9 RichFunction 118
4.10 數據序列化 121
4.10.1Flink數據序列化機制的
誕生過程 122
4.10.2Flink支持的7種數據
類型 123
4.10.3TypeInformation與
TypeSerializer 125
4.10.4Java Lambda表達式對數據
序列化的影響 127
4.10.5 使用注意事項 129
4.11 工具類及Debug建議 131
4.11.1 ParameterTool 131
4.11.2 Debug建議 132
4.12 本章小結 132
第5章Flink的時間語義和
時間窗口 134
5.1 時間語義和時間窗口概述 134
5.2 時間窗口 137
5.2.1 Flink中的時間窗口 138
5.2.2 為什么需要時間窗口 139
5.2.3時間窗口程序的骨架
結構 141
5.2.4 時間窗口的計算機制 143
5.2.5 窗口分配器 145
5.2.6 窗口處理函數 154
5.2.7 窗口觸發(fā)器 169
5.3 時間語義 176
5.3.1 處理時間 177
5.3.2 事件時間 178
5.3.3 攝入時間 180
5.4 Watermark 180
5.4.1 Watermark的誕生背景 180
5.4.2 Watermark的定義及特點 185
5.4.3 Watermark的傳輸策略 187
5.4.4使用Watermark緩解數據
亂序問題 193
5.4.5 生成Watermark的API 196
5.5 雙流數據時間窗口關聯 204
5.5.1 時間窗口關聯 205
5.5.2 時間窗口CoGroup操作 208
5.5.3 時間區(qū)間關聯 210
5.6 計數窗口 213
5.7生產中的常見問題及解決
方案 215
5.7.1事件時間窗口不觸發(fā)計算的
3種原因及解決方案 216
5.7.2事件時間窗口數據亂序問題
的體系化解決方案 223
5.7.3windowAll()方法導致數據
傾斜問題的解決方案 230
5.7.4擴展思考?:Watermark是否
只能從時間戳中取值 233
5.8 本章小結 233
第6章Flink狀態(tài)原理及異常
容錯機制 235
6.1 Flink有狀態(tài)計算 235
6.1.1 狀態(tài)及有狀態(tài)計算的定義 235
6.1.2Flink有狀態(tài)計算的
4類應用 237
6.1.3傳統有狀態(tài)計算方案應用于
大數據場景時存在的
3個問題 237
6.1.4Flink實現有狀態(tài)計算的
思路 240
6.1.5Flink實現有狀態(tài)計算面臨的
2個難題 248
6.1.6 Flink有狀態(tài)計算總結 251
6.2 Flink狀態(tài)接口 252
6.2.1 Flink狀態(tài)的分類 252
6.2.2 算子狀態(tài) 257
6.2.3 鍵值狀態(tài) 269
6.2.4 廣播狀態(tài) 286
6.2.5 鍵值狀態(tài)保留時長 294
6.2.6 F

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號