注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Flink SQL與DataStream:入門、進(jìn)階與實(shí)戰(zhàn)

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

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

定 價(jià):¥129.00

作 者: 羊藝超
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書可以去


ISBN: 9787111739029 出版時(shí)間: 2023-12-01 包裝: 平裝-膠訂
開本: 16開 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

Contents目  錄
前 言
第1章 初識(shí)Flink 1
1.1 Flink定位 1
1.1.1 Flink是什么 2
1.1.2 Flink對(duì)于數(shù)據(jù)的定義 3
1.1.3 Flink的3種應(yīng)用場(chǎng)景 4
1.1.4 Flink的3個(gè)企業(yè)應(yīng)用案例 7
1.2 Flink的核心特性 9
1.2.1 Flink的5個(gè)核心特性 9
1.2.2 3種流處理引擎特性的對(duì)比 10
1.3 Flink的API 11
1.3.1 Code API 11
1.3.2 關(guān)系型API 13
1.4 與Flink搭配使用的引擎 15
1.5 本章小結(jié) 16
第2章Flink WordCount作業(yè)開發(fā)
及運(yùn)行 17
2.1 基礎(chǔ)環(huán)境準(zhǔn)備 17
2.2 創(chuàng)建一個(gè)Flink項(xiàng)目 18
2.3 Flink WordCount代碼案例 21
2.4 Flink作業(yè)的骨架結(jié)構(gòu) 24
2.5 本章小結(jié) 25
第3章Flink分布式架構(gòu)及核心
概念 26
3.1分布式應(yīng)用與非分布式應(yīng)用的
異同 27
3.2 Flink作業(yè)的運(yùn)行時(shí)架構(gòu) 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è)時(shí)涉及的核心
概念 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 本章小結(jié) 64
第4章 Flink DataStream API 65
4.1 什么是DataStream 65
4.2 執(zhí)行環(huán)境 66
4.3 數(shù)據(jù)源 67
4.3.1從數(shù)據(jù)源存儲(chǔ)引擎中讀取數(shù)據(jù)
的API 67
4.3.2 從Socket中讀取數(shù)據(jù) 69
4.3.3 從Kafka中讀取數(shù)據(jù) 69
4.3.4 從自定義數(shù)據(jù)源中讀取數(shù)據(jù) 74
4.4 數(shù)據(jù)簡(jiǎn)單轉(zhuǎn)換 76
4.4.1 單流的3種數(shù)據(jù)簡(jiǎn)單轉(zhuǎn)換 76
4.4.2 多流的4種數(shù)據(jù)簡(jiǎn)單轉(zhuǎn)換 80
4.5 數(shù)據(jù)分組與聚合 84
4.5.1 KeyBy 85
4.5.2 Max、Min和Sum 88
4.5.3 Reduce 92
4.6 數(shù)據(jù)匯 95
4.6.1向數(shù)據(jù)匯存儲(chǔ)引擎寫數(shù)據(jù)的
API 95
4.6.2 向控制臺(tái)輸出數(shù)據(jù) 95
4.6.3 向Kafka寫入數(shù)據(jù) 96
4.6.4 向自定義數(shù)據(jù)匯寫入數(shù)據(jù) 99
4.7 算子間數(shù)據(jù)傳輸?shù)?種策略 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 數(shù)據(jù)異步I/O處理 112
4.8.1同步I/O處理導(dǎ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的注意
事項(xiàng) 117
4.9 RichFunction 118
4.10 數(shù)據(jù)序列化 121
4.10.1Flink數(shù)據(jù)序列化機(jī)制的
誕生過(guò)程 122
4.10.2Flink支持的7種數(shù)據(jù)
類型 123
4.10.3TypeInformation與
TypeSerializer 125
4.10.4Java Lambda表達(dá)式對(duì)數(shù)據(jù)
序列化的影響 127
4.10.5 使用注意事項(xiàng) 129
4.11 工具類及Debug建議 131
4.11.1 ParameterTool 131
4.11.2 Debug建議 132
4.12 本章小結(jié) 132
第5章Flink的時(shí)間語(yǔ)義和
時(shí)間窗口 134
5.1 時(shí)間語(yǔ)義和時(shí)間窗口概述 134
5.2 時(shí)間窗口 137
5.2.1 Flink中的時(shí)間窗口 138
5.2.2 為什么需要時(shí)間窗口 139
5.2.3時(shí)間窗口程序的骨架
結(jié)構(gòu) 141
5.2.4 時(shí)間窗口的計(jì)算機(jī)制 143
5.2.5 窗口分配器 145
5.2.6 窗口處理函數(shù) 154
5.2.7 窗口觸發(fā)器 169
5.3 時(shí)間語(yǔ)義 176
5.3.1 處理時(shí)間 177
5.3.2 事件時(shí)間 178
5.3.3 攝入時(shí)間 180
5.4 Watermark 180
5.4.1 Watermark的誕生背景 180
5.4.2 Watermark的定義及特點(diǎn) 185
5.4.3 Watermark的傳輸策略 187
5.4.4使用Watermark緩解數(shù)據(jù)
亂序問(wèn)題 193
5.4.5 生成Watermark的API 196
5.5 雙流數(shù)據(jù)時(shí)間窗口關(guān)聯(lián) 204
5.5.1 時(shí)間窗口關(guān)聯(lián) 205
5.5.2 時(shí)間窗口CoGroup操作 208
5.5.3 時(shí)間區(qū)間關(guān)聯(lián) 210
5.6 計(jì)數(shù)窗口 213
5.7生產(chǎn)中的常見問(wèn)題及解決
方案 215
5.7.1事件時(shí)間窗口不觸發(fā)計(jì)算的
3種原因及解決方案 216
5.7.2事件時(shí)間窗口數(shù)據(jù)亂序問(wèn)題
的體系化解決方案 223
5.7.3windowAll()方法導(dǎo)致數(shù)據(jù)
傾斜問(wèn)題的解決方案 230
5.7.4擴(kuò)展思考?:Watermark是否
只能從時(shí)間戳中取值 233
5.8 本章小結(jié) 233
第6章Flink狀態(tài)原理及異常
容錯(cuò)機(jī)制 235
6.1 Flink有狀態(tài)計(jì)算 235
6.1.1 狀態(tài)及有狀態(tài)計(jì)算的定義 235
6.1.2Flink有狀態(tài)計(jì)算的
4類應(yīng)用 237
6.1.3傳統(tǒng)有狀態(tài)計(jì)算方案應(yīng)用于
大數(shù)據(jù)場(chǎng)景時(shí)存在的
3個(gè)問(wèn)題 237
6.1.4Flink實(shí)現(xiàn)有狀態(tài)計(jì)算的
思路 240
6.1.5Flink實(shí)現(xiàn)有狀態(tài)計(jì)算面臨的
2個(gè)難題 248
6.1.6 Flink有狀態(tài)計(jì)算總結(jié) 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)保留時(shí)長(zhǎng) 294
6.2.6 F

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)