數(shù)據(jù)的實(shí)效性一般分三種:
- 離線:在今天(T)處理N天前(T-N,N>=1)的數(shù)據(jù),延遲時(shí)間粒度為天岳锁。
- 準(zhǔn)實(shí)時(shí):在當(dāng)前小時(shí)(H)處理N小時(shí)前(H-N,N>0卒暂,如0.5小時(shí)啄栓、1小時(shí)等)的數(shù)據(jù)娄帖,延遲時(shí)間粒度為小時(shí)。
- 實(shí)時(shí):在當(dāng)前時(shí)刻處理當(dāng)前的數(shù)據(jù)昙楚,延遲時(shí)間粒度為秒近速。
離線和準(zhǔn)實(shí)時(shí)都可以在批處理系統(tǒng)中實(shí)現(xiàn),而實(shí)時(shí)數(shù)據(jù)則需要在流式處理系統(tǒng)中完成堪旧。
一削葱、流式技術(shù)架構(gòu)
在流式計(jì)算技術(shù)中,需要各個(gè)子系統(tǒng)之間相互依賴形成一條數(shù)據(jù)處理鏈路淳梦,才能產(chǎn)出結(jié)果最終對(duì)外提供實(shí)時(shí)數(shù)據(jù)服務(wù)析砸。子系統(tǒng):
- 數(shù)據(jù)采集
- 數(shù)據(jù)處理
- 數(shù)據(jù)存儲(chǔ)
- 數(shù)據(jù)服務(wù)
1.數(shù)據(jù)采集
實(shí)時(shí)采集,兩種數(shù)據(jù):
- 數(shù)據(jù)庫變更日志
- 引擎訪問日志
日志在業(yè)務(wù)服務(wù)器上落地成文件爆袍,只要監(jiān)控文靜的內(nèi)容發(fā)生變化首繁,采集工具就可以把最新的數(shù)據(jù)采集下來作郭。基于下面的原則按批次對(duì)數(shù)據(jù)進(jìn)行采集:
- 數(shù)據(jù)大小限制
- 時(shí)間閾值限制
數(shù)據(jù)中間件:把采集到的數(shù)據(jù)分發(fā)給下游(kafka弦疮,timetunnel(阿里的kafka)等)
消息系統(tǒng):業(yè)務(wù)數(shù)據(jù)庫變更的消息中轉(zhuǎn)
時(shí)效性和吞吐量是數(shù)據(jù)處理中的兩個(gè)矛盾體夹攒,很多時(shí)候需要從業(yè)務(wù)角度來權(quán)衡使用什么樣的系統(tǒng)來做數(shù)據(jù)中轉(zhuǎn)。
2.數(shù)據(jù)處理
實(shí)時(shí)計(jì)算任務(wù)部署在流式計(jì)算系統(tǒng)上胁塞,通過數(shù)據(jù)中間件獲取到實(shí)時(shí)源數(shù)據(jù)后進(jìn)行實(shí)時(shí)加工處理咏尝。流計(jì)算引擎:
- Storm
- Spark Streaming
- Flink
- StreamCompute(阿里)
實(shí)時(shí)任務(wù)遇到的典型問題:
- 去重指標(biāo)
- 數(shù)據(jù)傾斜
- 事務(wù)處理
3.數(shù)據(jù)存儲(chǔ)
三種類型的數(shù)據(jù):
- 中間計(jì)算結(jié)果
- 最終結(jié)果數(shù)據(jù)
- 維表數(shù)據(jù)
4. 數(shù)據(jù)服務(wù)
實(shí)時(shí)數(shù)據(jù)落地到存儲(chǔ)系統(tǒng)中后,通過統(tǒng)一的數(shù)據(jù)服務(wù)獲取到實(shí)時(shí)數(shù)據(jù)啸罢。
二编检、流式數(shù)據(jù)模型
類似于離線模型也分五層,由于實(shí)時(shí)計(jì)算的局限性扰才,每一層中沒有像離線做得那么寬蒙谓,維度和指標(biāo)也沒有那么多,整體來看训桶,實(shí)時(shí)數(shù)據(jù)模型是離線數(shù)據(jù)模型的一個(gè)子集累驮。
1.數(shù)據(jù)分層
- ODS:數(shù)據(jù)操作層,原始數(shù)據(jù)舵揭,粒度最細(xì)谤专。
- DWD:實(shí)時(shí)事實(shí)明細(xì)層。
- DWS:各個(gè)維度的匯總指標(biāo)午绳,可作為通用的數(shù)據(jù)模型使用置侍。
- ADS:個(gè)性化維度匯總層。
-
DIM:從離線維表層導(dǎo)過來的拦焚。
image.png
其中蜡坊,ods層導(dǎo)dim層的etl處理是在離線系統(tǒng)中進(jìn)行的,處理完成后會(huì)同步到實(shí)時(shí)計(jì)算說使用的存儲(chǔ)系統(tǒng)赎败。
ods層和dwd層會(huì)放在數(shù)據(jù)中間件中秕衙,供下游訂閱使用。
dws層和ads層會(huì)落地到在線存儲(chǔ)系統(tǒng)中僵刮,下游通過接口調(diào)用的形式使用据忘。
2.多流關(guān)聯(lián)
在流式計(jì)算中常常需要把兩個(gè)實(shí)時(shí)流進(jìn)行主鍵關(guān)聯(lián),以得到對(duì)應(yīng)的實(shí)時(shí)明細(xì)表搞糕。
3.維表使用
關(guān)聯(lián)維表一般會(huì)使用當(dāng)前的實(shí)時(shí)數(shù)據(jù)(T)去關(guān)聯(lián)T-2的維表數(shù)據(jù)勇吊。原因如下:
- 數(shù)據(jù)無法及時(shí)準(zhǔn)備好
- 無法準(zhǔn)確獲取全量的最新數(shù)據(jù)
- 數(shù)據(jù)的無序性
4. 大促保障
略