1. 程式人生 > >什麼是實時流式計算?

什麼是實時流式計算?

實時流式計算,也就是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-