實時流式計算,也就是RealTime,Streaming,Analyse,在不同的領域有不同的定義,這裡我們說的是大數據領域的實時流式計算。 實時流式計算,或者是實時計算,流式計算,在大數據領域都是差不多的概念。那麼,到底什麼是實時流式計算呢? 谷歌大神Tyler Akidau在《the world ...
實時流式計算,也就是RealTime,Streaming,Analyse,在不同的領域有不同的定義,這裡我們說的是大數據領域的實時流式計算。
實時流式計算,或者是實時計算,流式計算,在大數據領域都是差不多的概念。那麼,到底什麼是實時流式計算呢?
谷歌大神Tyler Akidau在《the-world-beyond-batch-streaming-101》一文中提到過實時流式計算的三個特征:
1、無限數據
2、無界數據處理
3、低延遲
無限數據指的是,一種不斷增長的,基本上無限的數據集。這些通常被稱為“流數據”,而與之相對的是有限的數據集。
無界數據處理,一種持續的數據處理模式,能夠通過處理引擎重覆的去處理上面的無限數據,是能夠突破有限數據處理引擎的瓶頸的。
低延遲,延遲是多少並沒有明確的定義。但我們都知道數據的價值將隨著時間的流逝降低,時效性將是需要持續解決的問題。
現在大數據應用比較火爆的領域,比如推薦系統在實踐之初受技術所限,可能要一分鐘,一小時,甚至更久對用戶進行推薦,這遠遠不能滿足需要,我們需要更快的完成對數據的處理,而不是進行離線的批處理。
但是這種模型肯定會帶來離線批處理所不存在的兩個問題:正確性與時間。
而這也正是實時流式計算的關鍵點:
1、正確性 一旦正確性有了保證,可以匹敵批處理。
2、時間推導工具 而一旦提供了時間推導的工具,變完全超過了批處理。
總結來說,我們得到的會是一條條的,隨著時間流逝不斷增長的數據,我們需要進行實時的數據分析,我們要解決大數據量,災備,時序,時間視窗,性能等等問題。
而實時,流式其實是相對的概念,現在的很多技術更應該說是近實時,微批。但只要能不斷的優化這些問題,實時流式的計算的價值就會越來越大。
由於大數據興起之初,Hadoop並沒有給出實時計算解決方案,隨後Storm,SparkStreaming,Flink等實時計算框架應運而生,而Kafka,ES的興起使得實時計算領域的技術越來越完善,而隨著物聯網,機器學習等技術的推廣,實時流式計算將在這些領域得到充分的應用。
下麵簡單介紹目前常用的幾種應用場景,未來將對Kafka,Storm,SparkStreaming,Flink等相關技術做具體介紹。
主要應用
1、日誌分析
比如對網站的用戶訪問日誌進行實時的分析,計算訪問量,用戶畫像,留存率等等,實時的進行數據分析,幫助企業進行決策。
2、物聯網
比如對電力系統進行實時的數據檢測,進行報警,實時的顯示,或者根據歷史數據進行實時的分析,預測。
3、車聯網
如今的車聯網已經不限於物聯網,還包括對用戶,交通等等進行分析的一個龐大的系統,改善用戶出行。
4、金融風控
通過對交易等金融行為實時分析,預測出未知風險。
還有很多應用的領域,而且未來會越來越多,在這個過程中具體的業務,以及與技術結合能產生什麼樣的價值,還需要不斷的探索。
《the-world-beyond-batch-streaming-101》地址:
https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101
更多實時計算相關技術博文,歡迎關註實時計算