【為什么要寫(xiě)這本書(shū)】
相比于國(guó)內(nèi)很多用戶來(lái)說(shuō),我接觸Flink的時(shí)間不算長(zhǎng),我是從2019年開(kāi)始學(xué)習(xí)和使用Flink解決工作中遇到的問(wèn)題的,那么是什么原因促使我寫(xiě)這本書(shū)?
第一,我想把我對(duì)Flink特性的理解進(jìn)行系統(tǒng)的總結(jié)。我在初期學(xué)習(xí)Flink時(shí),在窗口、有狀態(tài)計(jì)算等特性的學(xué)習(xí)上投入的成本是比較高的。隨著使用Flink越來(lái)越多,對(duì)Flink的各種特性越來(lái)越熟悉,我將自己對(duì)于Flink的理解和使用經(jīng)驗(yàn)整理成文章,并且發(fā)布在公眾號(hào)“大數(shù)據(jù)羊說(shuō)”上。隨著公眾號(hào)的讀者越來(lái)越多,我也收到了越來(lái)越多的反饋?偨Y(jié)下來(lái),我的文章能夠吸引讀者的亮點(diǎn)在于,我是從背景知識(shí)、要解決的問(wèn)題以及Flink中的實(shí)現(xiàn)方案這3個(gè)角度解釋Flink的技術(shù)特性,而這一點(diǎn)恰好是很多想要深入學(xué)習(xí)Flink但是找不到好的學(xué)習(xí)資料的讀者急需的。很多讀者的反饋給了我持續(xù)寫(xiě)文章的動(dòng)力,也讓我產(chǎn)生了寫(xiě)一本書(shū)來(lái)幫助更多讀者的想法。
第二,我算得上是Flink SQL API的早期用戶,F(xiàn)link SQL API由于具有易用的特性,用戶越來(lái)越多,發(fā)展勢(shì)頭越來(lái)越猛、而市面上關(guān)于Flink SQL API的中文資料比較少,因此我想將自己對(duì)于Flink SQL API的理解梳理出來(lái),在推廣Flink SQL API的同時(shí)也能夠幫助讀者學(xué)習(xí)Flink SQL API。
【讀者對(duì)象】
本書(shū)適合以下讀者閱讀。
開(kāi)設(shè)Flink相關(guān)課程的院校師生。
實(shí)時(shí)計(jì)算開(kāi)發(fā)工程師。
大數(shù)據(jù)開(kāi)發(fā)工程師。
【如何閱讀本書(shū)】
本書(shū)詳細(xì)剖析了Flink中的時(shí)間、窗口、有狀態(tài)計(jì)算和檢查點(diǎn)這4項(xiàng)核心難點(diǎn),盡可能降低讀者的學(xué)習(xí)成本,并且相對(duì)全面地介紹了Flink SQL API的內(nèi)容。本書(shū)分為11章,各章內(nèi)容層層遞進(jìn)。
第1~3章是Flink初學(xué)者必讀內(nèi)容,主要介紹Flink的由來(lái)、特性、API的使用方法和運(yùn)行時(shí)的架構(gòu)。
如果讀者想使用Java開(kāi)發(fā)一個(gè)Flink流處理作業(yè),推薦仔細(xì)閱讀第4~7章。第4章介紹Flink DataStream API中的基礎(chǔ)接口。第5章和第6章介紹Flink中的時(shí)間、窗口、有狀態(tài)計(jì)算和檢查點(diǎn)的相關(guān)知識(shí)。第7章介紹Flink有狀態(tài)流處理API。
如果讀者想使用SQL開(kāi)發(fā)一個(gè)Flink流處理作業(yè),推薦仔細(xì)閱讀第8~11章。第8章介紹Flink Table API和SQL API中的基礎(chǔ)概念,第9章介紹Flink SQL API中的語(yǔ)法及其執(zhí)行過(guò)程,第10章介紹Flink SQL API中的函數(shù),第11章介紹Flink SQL API中的參數(shù)及SQL優(yōu)化方法。