易燃物匯聚 YouTube 有聲書與書評
Flink原理與實踐 封面

Flink原理與實踐

魯蔚徵編著

7559人在讀
30.8萬字總字數
¥38.8定價

內容簡介

本書圍繞大數據流處理領域,介紹Flink DataStream API、時間和窗口、狀態和檢查點、Table API和SQL等知識。本書以實踐爲導向,使用大量真實業務場景案例來演示如何基於Flink進行流處理。本書主要面向對大數據領域感興趣的本科生、研究生,想轉行到大數據開發行業的在職人員,或有一定大數據開發經驗的相關從業人員。讀者最好有一定的Java或Scala編程基礎,掌握計算機領域的常見技術概念。

讀者書評

★★★★★

一、Flink 的本質 你可以把 Flink 想成一句話: 它不是在處理數據,而是在“維護一個不斷變化的世界狀態” 再講得更狠一點: Flink = 一個持續運行的程序,它的輸出永遠不是最終結果,而是“當前時刻的答案” ⸻ 二、從“程序本質”來理解 Flink 你以前寫程序是這樣的: 輸入 → 計算 → 輸出 → 結束 而 Flink 是: 輸入(無限流) → 更新狀態 → 輸出 → 永遠不結束 關鍵差別只有一個: 👉 沒有“結束”這個概念 ⸻ 三、核心機制(用人話講透) 1. 狀態(State) 你可以理解爲: Flink 的“記憶” 沒有狀態,就只是一個 map/filter 有狀態,才變成“系統” 比如: * 統計用戶點擊次數 * 計算訂單總額 * 判斷是否異常行爲 本質都是: 把歷史信息記住,然後參與未來計算 ⸻ 2. 事件驅動(Event Driven) Flink 不會主動跑,它是: 來一條數據 → 觸發一次計算 不是定時任務,不是批處理。 👉 本質: 計算是被數據“推着走”的 ⸻ 3. 時間(Event Time) 現實世界: * 用戶 10:00 下單 * 網絡延遲,10:05 纔到系統 如果用機器時間: 👉 數據會算錯 Flink做的是: 按“事件發生時間”來算,而不是“到達時間” ⸻ 4. 一致性(Checkpoint) Flink最核心能力: 系統崩了也不會算錯 怎麼做到的? 👉 定期做“狀態快照” 可以理解爲: 遊戲存檔 掛了就讀檔繼續跑 ⸻ 四、一個真正“貼近你工作”的例子 ⸻ 場景:監控 Topic 流量(你絕對熟) Kafka 裏不斷有數據: Topic A: 100KB/s Topic B: 200KB/s 你想做: 👉 實時統計每個 topic 的流量 ⸻ Flink 做的事情 第一步:讀取 Kafka 每條消息 = 一次輸入 ⸻ 第二步:更新狀態 比如 Topic A: 之前流量 = 1000KB 新數據 = 50KB → 更新爲 1050KB 👉 注意: 這不是“重新計算”,而是: 在舊結果上累加 ⸻ 第三步:輸出結果 當前流量 = 1050KB ⸻ 第四步:Checkpoint 系統記錄: 當前狀態 = 1050KB 如果機器掛了: 👉 從 1050KB 繼續 不會從 0 開始 ⸻ 五、把所有知識“收縮成一個模型” 你可以這樣記: ⸻ Flink = 三件事 1. 數據流(Stream) 永遠在來的數據 ⸻ 2. 狀態(State) 系統記住的東西 ⸻ 3. 函數(Operator) 怎麼處理數據 ⸻ 合起來就是: 新數據 + 舊狀態 → 新狀態 → 輸出 ⸻ 六、最關鍵的“認知升級” 很多人學 Flink 卡住,是因爲還在用“數據庫思維”: * 查一次 * 算一次 * 出結果 但 Flink 是: 結果一直在變化 ⸻ 你要換成這種思維: 👉 不是問“結果是多少” 👉 而是問“現在這一刻結果是多少” ⸻ 七、終極總結(你可以直接背) ⸻ Flink 本質上是一個持續運行的流處理系統,它不斷讀取數據流,通過維護狀態來逐步更新計算結果。 它的核心不是一次性計算,而是在數據到達的過程中持續演進結果,並通過 checkpoint 保證系統在故障情況下仍然能夠保持一致性。

★★★★★

準備學習flink的時候,初略翻了幾本相關的教材,比較下來這本還是很不錯的。 1. 知識點比較全,基本上在官網介紹的知識點都介紹到了。當然,入門書不可能面面俱到,很多也是點到爲止,但也足夠了 2. 說人話。很多翻譯國外的書或者照抄官網文檔的書,語言生澀,看得頭大,這本書沒這個問題,只要時間夠,可以一口氣讀完 3. 由淺入深,章節組織的好,循序漸進,難點、重點從目錄裏面就很明顯了,不用前後倒騰的看 說點不足: 1. 缺乏完整案例,章節後面有些實驗作業,可惜沒有講解。如果有幾個案例把知識點串起來,會更好。畢竟書的名字叫“實踐”嘛 2. flink作爲宣稱的“批流一體”,不過“批處理”基本沒涉及到,當然其它的教程也很少講(從理論到實踐基本都見不到),私下認爲,這怎麼能夠打敗spark?

★★★★★

非常好的一本flink入門書,深入淺出地介紹了flink學習的核心概念和最佳實踐。在很多概念的講解中,作者結合了很多實際的案例,並且提供了相應的代碼,甚至有IntelliJ idea的操作,幫助讀者更好地從理論走向實踐。本書的出版時間離現在比較近,flink版本也比較新,主要是結合1.11版本來講解,在實際應用時可操作性非常好,非常推薦有需要的朋友閱讀。此外,書裏提供的課後實驗也很完善,甚至都可以作爲flink課程的教材了。 最後吐槽一句,入門flink的時候,我最開始看的是國內flink官方的微信公衆號的入門教程,結果上面的入門教程很多概念說的不清不楚,動不動蹦出個沒介紹過的新名詞,對於小白入門不太友好。而且教程裏面的API也很老,很多API都已經廢棄了。所以不建議看微信公衆號上面的教程。 春節沒少坐火車,在漫長的火車上閒着沒事,一口氣看完這本書,感覺酣暢淋漓。本以爲在手機上看代碼會體驗很差,結果發現微信讀書對代碼排版還挺好的,閱讀體驗很好,給微信讀書點個贊。

★★★★★

流處理是對批處理的有效補充。 實時數據的產生,傳輸,計算轉換,結果存儲,查詢分析,發現價值

★★★★★

對新手還算友好,但是datastream api有點多,新手讀起來估計會摸不着頭腦,不過我覺得用到這些api的時候再回顧一遍就行

★★★★★

前面簡單介紹了flink運行環境以及提交任務到執行的流程,隨後大量篇幅講了datastream的知識,如果只是想入門,看這部分datastream的知識就夠用了,寫得很詳細。不過大部分內容都是官網文檔的內容,乾貨較少,實際在生產環境可能遇到的問題沒提及,引言裏說的流批一體和數據傾斜問題也沒有提出解決方法。

★★★★★

如果有spark基礎,0基礎入門flink,這本書非常合適,把常用操作給出了樣例

★★★★★

打工人的生活:兩天精通快速上手。

★★★★★

這是一本入門Flink極好的書籍,通俗易懂。第一章第五小節“流處理基礎概念”講到了本書的核心,後面的章節主要圍繞這些基礎概念展開。前面主要以Flink的基礎API DataStream講解各個概念,第八章介紹了更高級,大家也更熟悉的SQL語言,同樣可以完成Flink的流式或批處理計算。

★★★★★

適合入門,每個點都介紹的很清楚,具體細節還是要看源碼多實踐

書籍信息

作者魯蔚徵編著
出版社人民郵電出版社
出版時間2021-03-01
ISBN9787115546159
分類計算機-數據庫
格式EPUB
完結狀態連載中
章節數72