Structed Streaming

概論

結構化流式查詢使用微批處理引擎進行處理,該引擎將數據流作爲一系列小批量作業處理,從而實現低至100毫秒的端到端延遲和完全一次的容錯保證。但是,自Spark 2.3以來,引入了一種稱爲連續處理的新型低延遲處理模式,它可以實現低至1毫秒的端到端延遲,並且具有至少一次的保證。

編程模型

結構化流中的關鍵思想是將實時數據流視爲連續追加的表。這導致新的流處理模型非常類似於批處理模型。您將流式計算表示爲靜態表上的標準批處理查詢,Spark將其作爲無界輸入表上的增量查詢運行。

基本概念

將輸入數據流視爲“輸入表”。到達流的每個數據項都像一個新行被附加到輸入表。

Structed Streaming

 

對輸入的查詢將生成“結果表”。每個觸發間隔(例如,每1秒),新行將附加到輸入表,最終更新結果表。每當結果表更新時,我們都希望將更改的結果行寫入外部接收器。

Structed Streaming

“輸出”定義爲寫入外部存儲器的內容。輸出可以以不同的模式定義:

(1)完全模式(Complete Mode)

  整個更新的結果表(Result Table)將被寫入到外部存儲。這取決於外部連接決定如何操作整個表的寫入。

(2)追加模式(Append Mode)

  只有從上一次觸發後追加到結果表中新行會被寫入到外部存儲。適用於已經存在結果表中的行不期望被改變的查詢。

(3)更新模式(Update Mode)

   只有從上一次觸發後在結果表中更新的行將會寫入外部存儲(Spark 2.1.1之後纔可用)。這種模式不同於之前的完全模式,它僅僅輸出上一次觸發後改變的行。如果查詢中不包含聚合,這種模式與追加模式等價的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章