淘寶大數據之流式計算

  • 2019 年 10 月 6 日
  • 筆記

到底什麼是大數據?大數據與數據統計有什麼區別?如果不理解大數據的承載底層技術,很難講清楚。因此作為解決方案經理,技術與業務都是作為方案不可缺少的組成部分。今天我們來看一下大數據之流式計算。

一、流式計算的應用場景

我們上一章講到了數據採集。數據採集之後,如何利用數據呢?將採集的數據快速計算後回饋給客戶,這便於流式計算。 流式計算在物聯網、互聯網行業應用非常之廣泛。在電商「雙11」節中,不斷滾動的金額數據;在交通展示大通,不斷增加的車輛數據,這些都是流式計算的應用場景。

二、數據時效性的三種分類

離線:在今天(T)處理N天(N>1)前的數據,延遲時間粒度為天。例如我們想統記手環記錄的全年分24小時的每小時跑步數情況。

准實時:在當前小時(H)處理N小時前(N>1)小時前的數據,延延時間粒度為小時。

實時:在當前時刻處理當前的數據,延遲時間粒度為秒。例如,我們想實時展示全市的各採集點的空氣品質情況。

三、離線、流式數據的處理要求

1、對於離線、准實時數據都可以在批處理系統中實現(比如MapReduce、MaxCompute),對於此類數據,數據源一般來源於資料庫(HBase、Mysql等),而且採用了分散式計算,因此具有處理時間長、處理數據量大的特別,MapReduce不適合處理實時數據。

2、流式數據是指業務系統每產生一條數據,就會立刻被發送至流式任務中進行處理,而不需要定時調度任務來處理數據。中間可能會經過消息中間件(MQ),作用僅限於削峰等流控作用。

四、流式數據的特點

1、時間效高。數據採集、處理,整個時間秒級甚至毫秒級。

2、常駐任務、資源消耗大。區別於離線任務的手工、定期調度,流式任務屬於常駐進程任務,會一直常駐記憶體運行,計算成本高。

3、性能要求高。如果實時任務1分鐘只能處理30秒鐘採集的數據,那麼只能造成系統崩潰。

4、應用局限性。實時數據處理不能代替離線處理。例如想統計過去一年的電商消耗金額,這個任務不需要隨時執行,只需要一次;如果用實時數據處理只是浪費社會資源。

五、流式數據的技術架構

1、數據採集

數據的源頭,一般來自於業務的日誌伺服器或物聯網終端等。這些數據被實時採集到數據中間件,供下游訂閱。

2、數據處理

下游任務(Spark、Storm、Flink、StreamCompute等應用)實時訂閱數據,並進行實時數據處理。

3、數據處理

數據實時加工後,會被寫到個在線服務存儲系統(一般是Redis、MangoDB、HBase等高速資料庫)藉助大屏應用讀取。

4、數據服務

通過UI、BI等介面展示程式,將數據實時投影到大屏中,形成大家看到的圖形、不斷變幻的數字。

Tags: