flink中提供了4種不同層次的api,如下圖所示:
•低階api(stateful stream processing):提供了對時間和狀態的細粒度控制,簡潔性和易用性較差,主要應用在對一些複雜事件的處理邏輯上。
•核心api(datastream && dataset api):主要提供了針對流資料和離線資料的處理,對低階api進行了一些封裝,提供了filter、sum、max、min等高階函式,簡單且易用,所以在工作中應用比較廣泛。
•table api:一般與dataset或者datastream緊密關聯,首先通過乙個dataset或datastream建立出乙個table;然後用類似於filter、join或者select關係型轉化操作來轉化為乙個新的table物件;最後將乙個table物件轉回乙個dataset或datastream。與sql不同的是,table api的查詢不是乙個指定的sql字串,而是呼叫指定的api方法。
•sql:flink的sql整合是基於apache calcite的,apache calcite實現了標準的sql,使用起來比其他api更加靈活,因為可以直接使用sql語句。table api和sql可以很容易地結合在一塊使用,它們都返回table物件。
分層 抽象 複雜 認知
抽象與分層是電腦科學中的一種基本思想方法,是降低計算機系統複雜度的有效方法。抽象,本質上是一種泛化與概括的思維方式。在計算機中核心資源就是cpu和記憶體,我們對cpu計算過程抽象的就是函式,函式是計算過程的泛化。而對記憶體中資料的抽象就是資料結構,資料結構是資料組織方式的泛化,而物件的本質就是二者的...
窮舉 分類 分層 抽象的要義
窮舉 分類 分層 抽象是我推薦的4種分析問題的方法,即可以用於需求的分析,也可以用於其它的方面。窮舉就是羅列出所有可能的情況。當知道某一種可能的時候,要舉一反三,列出所有的可能,針對問題的全集考慮解決方案。假如你考慮開發乙個庫存管理系統,有入庫單 出庫單 損溢單等3種型別的單據,有2種帳本 庫存流水...
好書一起讀 151 抽象和分層
點評 抽象的分層與功能的重組想關聯 對於單個事物的抽象和對於系統的抽象要區別對待 單個事物的抽象是資訊過濾 是部分替代整體 系統的抽象是用整體隱藏區域性 人類想解決問題,但問題複雜,腦力有限,所以使用抽象。也就是說,抽象是一種工具,這工具的用途是幫助人類以有限的腦力解決複雜的問題。人的思考能力有侷限...