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