一文搞懂:離線數據、實時數據究竟該如何選擇

4 評論 14802 瀏覽 52 收藏 11 分鐘

編輯導語:在業務分析過程中,你應該選擇實時數據還是離線數據?這需要依據業務場景來進行判斷,不能盲目選擇。那么,二者的優缺點是什么?各自適合應用于什么場景?本篇文章里,作者針對如何選擇離線數據和實時數據這一問題做了解答,一起來看一下。

做數據和用數據的人繞不開的問題是數據的時效性,離線數據、實時數據分別指的是什么,業務應用時,究竟該以什么標準選擇呢?很多業務產品或運營搞不懂兩者的區別。提數據分析需求,想著肯定越實時越好,數據團隊怎樣拒絕?

一、什么是離線數據、實時數據?

數據從業務端產生,到分析或者反哺業務使用,需要經過一系列的清洗、處理過程,而這一過程帶來時間窗口大小,就是數據的時效性。按照數據延遲的大小,可以將數據分為離線數據和以及實時數據(準實時)。

1. 離線數據

離線數據一般是指T-1的日期,例如今天的日期T=2021-11-12,那么數據結果中,能夠體現的業務數據只包括前一天的(昨日數據)。有人也稱之為T+1的數據,把數據日期當作T,叫法不同,但本質都是指的今天處理的數據最新日期是截止昨天。

2. 實時數據

實時數據主要是指的數據延遲小,例如毫秒、秒、分鐘級的延遲,小時級的延遲稱之為“準實時數據“更為準確了。例如,你熬夜趕在雙十一晚上的最后1分鐘,成功付了尾款,在雙十一實時統計大屏中,GMV的值又滾動了一下。

二、處理技術有何差異

1. 離線數據處理

離線數據處理也稱之為“批處理”,數據產生之后,不會立即進行清洗,而是在固定的周期進行ETL,例如每天在凌晨12:00之后,處理前一天產生的數據。上大學的時候,有的舍友喜歡將襪子攢起來,一個星期洗一次,這就是批處理的思想。

離線數據處理技術是大數據發展更早,目前已經非常成熟的一套體系,最常見是Hadoop,它是一個能夠對大量數據進行分布式處理的軟件框架。以一種可靠、高效、可伸縮的方式進行數據處理。核心組件是HDFS、MapReduce、Hive。以HDFS進行數據存儲,Mapreduce計算,Hive進行數據倉庫建設或者基于HiveSQL進行數據查詢。

主要優點是:

  • 能夠處理的數據量巨大,從企業成立以來的歷史數據,都可以存儲、計算處理、分析應用。
  • 數據更準確,對于一些交易類的業務,存在訂單狀態流轉,例如酒店,用戶早上下了訂單,但是下午有突發情況行程有變,取消了。在離線數據處理時,取當天訂單成功狀態,就不會計算在內。但對于數據漂移,即12點前下單,12點后取消的情況,就也無法統計到了,這種情形,在數據清洗任務處理時,可以采用全量更新的方式,每日更新全部數據,取最終的訂單狀態。

缺點:

離線數據的缺點也很明顯,就是慢。今天的數據,要隔天(明天)才能看得到。

2. 實時數據處理技術

實時數據處理,也稱之為“流式”數據處理,數據像水流一樣每時每刻源源不斷地產生后,就立即被清洗處理。這就好比,穿的襪子臟了就洗,今日事今日畢,而不是都攢著。

實時數據一般是業務端即席產生(水源),通過Kafka等消息通道(水流管道)進行傳輸,利用Storm或flink等實時組件進行消費處理。例如,雙十一統計每秒鐘的訂單數。

主要優點:

數據時效性強,可以做到秒級或者毫秒級時延,“所見即所得”。

缺點

  • 需要不停地進行數據計算,即每秒鐘或者每分鐘進行數據清洗和計算,集群資源消耗大。離線數據處理,任務一天跑一次,一次1小時,實時數據處理每分鐘跑一次,一天24小時都在跑。
  • 數據周期短,由于是流式處理的方式,相應的組件在實時處理方面能力強,但是沒辦法存儲太長時間的數據,如果容器只進不出,水終究會溢出。因此,一般數據計算的周期會限定在一周內居多。

三、離線、實時各自適用的場景是什么,如何選擇?

數據的應用場景總結下來其實就是兩個,數據分析與數據應用。

1. 在分析方面,數據時效性的選擇依據是什么呢?

1)業務經營分析、財務分析準確性大于時效性

即對于數據分析的場景,更在意的是能夠更加準確地反映業務表現情況,即使T+1天后才可以看到數據也可以接受。尤其是財務結算,一般是月度結算或者季度財報,準確性是第一位的。

2)預警監控類分析,需要追求實時性

如果所有的分析數據都是需要隔天才能看到,肯定是不行的。如果系統宕機了,或者服務異常導致產品不可用,用戶投訴才發現或者隔天數據分析才發現,帶來的業務損失就無法挽回了。因此,還需要有實時的數據分析模塊,對業務核心指標、系統服務指標進行最小延遲的預警監控。

所以,在數據分析場景下,離線數據為主,實時分析要有但不宜過度追求實時性。一般的數據可視化平臺,有一個實時數據模塊就可以了,其他的主題分析以離線數據為主。

2. 數據應用方面,數據時效性要求高于準確性

1)個性化推薦,用戶行為需要實時反饋

你在瀏覽頭條的時候,對推薦的內容點擊了“不感興趣”,相關的內容很快就隱藏了。同樣,你在淘寶上搜索或加購了某個產品,再看列表頁時,推薦的也都是相關內容。針對個性化推薦的場景,就要做到數據的最小延遲,如果等用戶都退出App了數據才計算完成更新,用戶就流失掉了。

2)用戶運營及營銷場景

在用戶運營場景中,流失用戶召回、會員運營等活動中,對數據時效性要求并沒那么高,例如你要對某個城市的下單用戶進行短信營銷(apppush),不對今天當天下單的用戶營銷影響也不大。

而對于實時的場景觸達,就需要實時數據了,例如,用戶打開App,實時判斷用戶是否是新客(截至本次訪問未下過單),發放新客大禮包。

所以在CDP用戶運營平臺的標簽建設時,既需要有離線標簽,也需要有實時標簽。

3)選擇依據小結

數據時效性的選擇時,要看具體應用場景對準確性、時效性的要求,實時和離線數據的應用場景選擇可以參考下圖:

四、總結

不管是離線數據還是實時數據最終都是為了解決業務場景下的問題,搞懂其差別和基本原理后,再去選擇到底是實時還是離線,可以做到用最小的資源成本達成業務目標,而不是一味地追求實時,或者永遠只能離線。

#專欄作家#

數據干飯人,微信號公眾號:數據干飯人,人人都是產品經理專欄作家。專注數據中臺產品領域,覆蓋開發套件,數據資產與數據治理,BI與數據可視化,精準營銷平臺等數據產品。擅長大數據解決方案規劃與產品方案設計。

本文原創發布于人人都是產品經理,未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 講解清晰,贊

    回復
  2. 學到很多,感謝。

    來自四川 回復
  3. 數據類的文章都挺難懂的 我每次看都好痛苦 但是這篇蠻清晰的誒!

    回復
    1. 數據產品視角哈哈

      回復