一文搞懂:離線數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)究竟該如何選擇
編輯導(dǎo)語:在業(yè)務(wù)分析過程中,你應(yīng)該選擇實(shí)時(shí)數(shù)據(jù)還是離線數(shù)據(jù)?這需要依據(jù)業(yè)務(wù)場景來進(jìn)行判斷,不能盲目選擇。那么,二者的優(yōu)缺點(diǎn)是什么?各自適合應(yīng)用于什么場景?本篇文章里,作者針對如何選擇離線數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)這一問題做了解答,一起來看一下。
做數(shù)據(jù)和用數(shù)據(jù)的人繞不開的問題是數(shù)據(jù)的時(shí)效性,離線數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)分別指的是什么,業(yè)務(wù)應(yīng)用時(shí),究竟該以什么標(biāo)準(zhǔn)選擇呢?很多業(yè)務(wù)產(chǎn)品或運(yùn)營搞不懂兩者的區(qū)別。提數(shù)據(jù)分析需求,想著肯定越實(shí)時(shí)越好,數(shù)據(jù)團(tuán)隊(duì)怎樣拒絕?
一、什么是離線數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)?
數(shù)據(jù)從業(yè)務(wù)端產(chǎn)生,到分析或者反哺業(yè)務(wù)使用,需要經(jīng)過一系列的清洗、處理過程,而這一過程帶來時(shí)間窗口大小,就是數(shù)據(jù)的時(shí)效性。按照數(shù)據(jù)延遲的大小,可以將數(shù)據(jù)分為離線數(shù)據(jù)和以及實(shí)時(shí)數(shù)據(jù)(準(zhǔn)實(shí)時(shí))。
1. 離線數(shù)據(jù)
離線數(shù)據(jù)一般是指T-1的日期,例如今天的日期T=2021-11-12,那么數(shù)據(jù)結(jié)果中,能夠體現(xiàn)的業(yè)務(wù)數(shù)據(jù)只包括前一天的(昨日數(shù)據(jù))。有人也稱之為T+1的數(shù)據(jù),把數(shù)據(jù)日期當(dāng)作T,叫法不同,但本質(zhì)都是指的今天處理的數(shù)據(jù)最新日期是截止昨天。
2. 實(shí)時(shí)數(shù)據(jù)
實(shí)時(shí)數(shù)據(jù)主要是指的數(shù)據(jù)延遲小,例如毫秒、秒、分鐘級的延遲,小時(shí)級的延遲稱之為“準(zhǔn)實(shí)時(shí)數(shù)據(jù)“更為準(zhǔn)確了。例如,你熬夜趕在雙十一晚上的最后1分鐘,成功付了尾款,在雙十一實(shí)時(shí)統(tǒng)計(jì)大屏中,GMV的值又滾動(dòng)了一下。
二、處理技術(shù)有何差異
1. 離線數(shù)據(jù)處理
離線數(shù)據(jù)處理也稱之為“批處理”,數(shù)據(jù)產(chǎn)生之后,不會立即進(jìn)行清洗,而是在固定的周期進(jìn)行ETL,例如每天在凌晨12:00之后,處理前一天產(chǎn)生的數(shù)據(jù)。上大學(xué)的時(shí)候,有的舍友喜歡將襪子攢起來,一個(gè)星期洗一次,這就是批處理的思想。
離線數(shù)據(jù)處理技術(shù)是大數(shù)據(jù)發(fā)展更早,目前已經(jīng)非常成熟的一套體系,最常見是Hadoop,它是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。以一種可靠、高效、可伸縮的方式進(jìn)行數(shù)據(jù)處理。核心組件是HDFS、MapReduce、Hive。以HDFS進(jìn)行數(shù)據(jù)存儲,Mapreduce計(jì)算,Hive進(jìn)行數(shù)據(jù)倉庫建設(shè)或者基于HiveSQL進(jìn)行數(shù)據(jù)查詢。
主要優(yōu)點(diǎn)是:
- 能夠處理的數(shù)據(jù)量巨大,從企業(yè)成立以來的歷史數(shù)據(jù),都可以存儲、計(jì)算處理、分析應(yīng)用。
- 數(shù)據(jù)更準(zhǔn)確,對于一些交易類的業(yè)務(wù),存在訂單狀態(tài)流轉(zhuǎn),例如酒店,用戶早上下了訂單,但是下午有突發(fā)情況行程有變,取消了。在離線數(shù)據(jù)處理時(shí),取當(dāng)天訂單成功狀態(tài),就不會計(jì)算在內(nèi)。但對于數(shù)據(jù)漂移,即12點(diǎn)前下單,12點(diǎn)后取消的情況,就也無法統(tǒng)計(jì)到了,這種情形,在數(shù)據(jù)清洗任務(wù)處理時(shí),可以采用全量更新的方式,每日更新全部數(shù)據(jù),取最終的訂單狀態(tài)。
缺點(diǎn):
離線數(shù)據(jù)的缺點(diǎn)也很明顯,就是慢。今天的數(shù)據(jù),要隔天(明天)才能看得到。
2. 實(shí)時(shí)數(shù)據(jù)處理技術(shù)
實(shí)時(shí)數(shù)據(jù)處理,也稱之為“流式”數(shù)據(jù)處理,數(shù)據(jù)像水流一樣每時(shí)每刻源源不斷地產(chǎn)生后,就立即被清洗處理。這就好比,穿的襪子臟了就洗,今日事今日畢,而不是都攢著。
實(shí)時(shí)數(shù)據(jù)一般是業(yè)務(wù)端即席產(chǎn)生(水源),通過Kafka等消息通道(水流管道)進(jìn)行傳輸,利用Storm或flink等實(shí)時(shí)組件進(jìn)行消費(fèi)處理。例如,雙十一統(tǒng)計(jì)每秒鐘的訂單數(shù)。
主要優(yōu)點(diǎn):
數(shù)據(jù)時(shí)效性強(qiáng),可以做到秒級或者毫秒級時(shí)延,“所見即所得”。
缺點(diǎn)
- 需要不停地進(jìn)行數(shù)據(jù)計(jì)算,即每秒鐘或者每分鐘進(jìn)行數(shù)據(jù)清洗和計(jì)算,集群資源消耗大。離線數(shù)據(jù)處理,任務(wù)一天跑一次,一次1小時(shí),實(shí)時(shí)數(shù)據(jù)處理每分鐘跑一次,一天24小時(shí)都在跑。
- 數(shù)據(jù)周期短,由于是流式處理的方式,相應(yīng)的組件在實(shí)時(shí)處理方面能力強(qiáng),但是沒辦法存儲太長時(shí)間的數(shù)據(jù),如果容器只進(jìn)不出,水終究會溢出。因此,一般數(shù)據(jù)計(jì)算的周期會限定在一周內(nèi)居多。
三、離線、實(shí)時(shí)各自適用的場景是什么,如何選擇?
數(shù)據(jù)的應(yīng)用場景總結(jié)下來其實(shí)就是兩個(gè),數(shù)據(jù)分析與數(shù)據(jù)應(yīng)用。
1. 在分析方面,數(shù)據(jù)時(shí)效性的選擇依據(jù)是什么呢?
1)業(yè)務(wù)經(jīng)營分析、財(cái)務(wù)分析準(zhǔn)確性大于時(shí)效性
即對于數(shù)據(jù)分析的場景,更在意的是能夠更加準(zhǔn)確地反映業(yè)務(wù)表現(xiàn)情況,即使T+1天后才可以看到數(shù)據(jù)也可以接受。尤其是財(cái)務(wù)結(jié)算,一般是月度結(jié)算或者季度財(cái)報(bào),準(zhǔn)確性是第一位的。
2)預(yù)警監(jiān)控類分析,需要追求實(shí)時(shí)性
如果所有的分析數(shù)據(jù)都是需要隔天才能看到,肯定是不行的。如果系統(tǒng)宕機(jī)了,或者服務(wù)異常導(dǎo)致產(chǎn)品不可用,用戶投訴才發(fā)現(xiàn)或者隔天數(shù)據(jù)分析才發(fā)現(xiàn),帶來的業(yè)務(wù)損失就無法挽回了。因此,還需要有實(shí)時(shí)的數(shù)據(jù)分析模塊,對業(yè)務(wù)核心指標(biāo)、系統(tǒng)服務(wù)指標(biāo)進(jìn)行最小延遲的預(yù)警監(jiān)控。
所以,在數(shù)據(jù)分析場景下,離線數(shù)據(jù)為主,實(shí)時(shí)分析要有但不宜過度追求實(shí)時(shí)性。一般的數(shù)據(jù)可視化平臺,有一個(gè)實(shí)時(shí)數(shù)據(jù)模塊就可以了,其他的主題分析以離線數(shù)據(jù)為主。
2. 數(shù)據(jù)應(yīng)用方面,數(shù)據(jù)時(shí)效性要求高于準(zhǔn)確性
1)個(gè)性化推薦,用戶行為需要實(shí)時(shí)反饋
你在瀏覽頭條的時(shí)候,對推薦的內(nèi)容點(diǎn)擊了“不感興趣”,相關(guān)的內(nèi)容很快就隱藏了。同樣,你在淘寶上搜索或加購了某個(gè)產(chǎn)品,再看列表頁時(shí),推薦的也都是相關(guān)內(nèi)容。針對個(gè)性化推薦的場景,就要做到數(shù)據(jù)的最小延遲,如果等用戶都退出App了數(shù)據(jù)才計(jì)算完成更新,用戶就流失掉了。
2)用戶運(yùn)營及營銷場景
在用戶運(yùn)營場景中,流失用戶召回、會員運(yùn)營等活動(dòng)中,對數(shù)據(jù)時(shí)效性要求并沒那么高,例如你要對某個(gè)城市的下單用戶進(jìn)行短信營銷(apppush),不對今天當(dāng)天下單的用戶營銷影響也不大。
而對于實(shí)時(shí)的場景觸達(dá),就需要實(shí)時(shí)數(shù)據(jù)了,例如,用戶打開App,實(shí)時(shí)判斷用戶是否是新客(截至本次訪問未下過單),發(fā)放新客大禮包。
所以在CDP用戶運(yùn)營平臺的標(biāo)簽建設(shè)時(shí),既需要有離線標(biāo)簽,也需要有實(shí)時(shí)標(biāo)簽。
3)選擇依據(jù)小結(jié)
數(shù)據(jù)時(shí)效性的選擇時(shí),要看具體應(yīng)用場景對準(zhǔn)確性、時(shí)效性的要求,實(shí)時(shí)和離線數(shù)據(jù)的應(yīng)用場景選擇可以參考下圖:
四、總結(jié)
不管是離線數(shù)據(jù)還是實(shí)時(shí)數(shù)據(jù)最終都是為了解決業(yè)務(wù)場景下的問題,搞懂其差別和基本原理后,再去選擇到底是實(shí)時(shí)還是離線,可以做到用最小的資源成本達(dá)成業(yè)務(wù)目標(biāo),而不是一味地追求實(shí)時(shí),或者永遠(yuǎn)只能離線。
#專欄作家#
數(shù)據(jù)干飯人,微信號公眾號:數(shù)據(jù)干飯人,人人都是產(chǎn)品經(jīng)理專欄作家。專注數(shù)據(jù)中臺產(chǎn)品領(lǐng)域,覆蓋開發(fā)套件,數(shù)據(jù)資產(chǎn)與數(shù)據(jù)治理,BI與數(shù)據(jù)可視化,精準(zhǔn)營銷平臺等數(shù)據(jù)產(chǎn)品。擅長大數(shù)據(jù)解決方案規(guī)劃與產(chǎn)品方案設(shè)計(jì)。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議
講解清晰,贊
學(xué)到很多,感謝。
數(shù)據(jù)類的文章都挺難懂的 我每次看都好痛苦 但是這篇蠻清晰的誒!
數(shù)據(jù)產(chǎn)品視角哈哈