一文了解Flink數據-有界數據與無界數據


在常規的數據處理中,我們最常訪問的可能是來自於Mysql,文本等存儲介質中的數據,對其進行計算分析。但是現在也越來越的出現流式計算的場景,對於某些時刻產生的數據能夠進行實時性的分析。例如天貓雙十一實時大屏,實時異常行爲檢測等。

有界數據集

有界數據集對開發者來說都很熟悉,在常規的處理中我們都會從Mysql,文本等獲取數據進行計算分析。我們在處理此類數據時,特點就是數據是靜止不動的。也就是說,沒有再進行追加。又或者說再處理的當時時刻不考慮追加寫入操作。所以有界數據集又或者說是有時間邊界。在某個時間內的結果進行計算。那麼這種計算稱之爲批計算,批處理。Batch Processing

例如:計算當前訂單量。又或者是把當前mysql的數據讀取到文件中等。

無界數據集

對於某些場景,類似於Kafka持續的計算等都被認定爲無界數據集,無界數據集是會發生持續變更的、連續追加的。例如:服務器信令、網絡傳輸流、實時日誌信息等。對於此類持續變更、追加的數據的計算方式稱之爲流計算。Streaming Processing

場景比較

無界數據集與有界數據集有點類似於池塘和江河,我們在計算池塘中的魚的數量時只需要把池塘中當前所有的魚都計算一次就可以了。那麼當前時刻,池塘中有多少條魚就是結果。無界數據集類似於江河中的魚,在奔流到海的過程中每時每刻都會有魚流過而進入大海。那麼計算魚的數量就像是持續追加的。

有界數據集與無界數據集是一個相對模糊的概念,如果數據一條一條的經過處理引擎那麼則可以認爲是無界的,那麼如果每間隔一分鐘、一小時、一天進行一次計算那麼則認爲這一段時間的數據又相對是有界的。有界的數據又可以把數據一條一條的通過計算引擎,造成無界的數據集。所以,有界數據集與無界數據集可以存在互換的。因此業內也就開始追尋 批流統一 的框架。 

能夠同時實現批處理與流處理的框架有Apache Spark和Apache Flink,而Apache Spark的流處理場景是一個微批場景,也就是它會在特定的時間間隔發起一次計算。而不是每條都會觸發計算。也就是相當於把無界數據集切分爲小量的有界數據。

Apache Flink基於有界數據集與無界數據集的特點,最終將批處理與流處理混合到同一套引擎當中,用戶使用Apache Flink引擎能夠同時實現批處理與流處理任務。

本文分享自微信公衆號 - 指尖數蟲(zhijianshuchong)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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