實時數(shù)倉建設(shè)方案
實時數(shù)倉建設(shè)方案
借助 Flink 出色流批一體的能力,ByteHouse 極致的查詢性能,為用戶構(gòu)建實時數(shù)倉,滿足業(yè)務(wù)實時分析需求。

Flink 作為流式數(shù)據(jù)處理引擎,使用 Flink SQL 為整個實時數(shù)倉數(shù)據(jù)提供數(shù)據(jù)轉(zhuǎn)化與清洗;
Kafka 作為流式數(shù)據(jù)臨時存儲層,同時為 Flink SQL 數(shù)據(jù)轉(zhuǎn)化與清洗提供緩沖作用,提高數(shù)據(jù)穩(wěn)定性;
ByteHouse 作為流式數(shù)據(jù)持久化存儲層,使用 ByteHouse HaKafka 、HaUniqueMergeTree 表引擎可將 Kafka 臨時數(shù)據(jù)高效穩(wěn)定接入儲存到 ByteHouse ,為后端應(yīng)用提供極速統(tǒng)一的數(shù)據(jù)集市查詢服務(wù)。具體的數(shù)據(jù)鏈路如下圖所示

實時數(shù)倉各邏輯層功能職責(zé)如下:
ODS 層(Operational Data Store)
把生產(chǎn)系統(tǒng)的數(shù)據(jù)導(dǎo)入消息隊列,原則上不做任何清洗操作,字段信息跟數(shù)據(jù)源保持一致。目的是為了對數(shù)據(jù)源做收斂管理,數(shù)據(jù)排查上也好做溯源回查。
DWD 層(Data Warehouse Detail)
DWD 層采用維度建模理論,針對業(yè)務(wù)內(nèi)容梳理業(yè)務(wù)實體的維表信息和事實表信息,設(shè)計 DWD 明細寬表模型,根據(jù)設(shè)計好的邏輯模型對 ODS 層的數(shù)據(jù)進行數(shù)據(jù)清洗,重定義和整合,整合主要包含多流 join 和維度擴充兩部分內(nèi)容, 建設(shè)能表達該業(yè)務(wù)主題下具體業(yè)務(wù)過程的多維明細寬表流。每一份 DWD 表從業(yè)務(wù)梳理->模型設(shè)計->數(shù)據(jù)流圖->任務(wù)開發(fā)鏈接->數(shù)據(jù)校驗結(jié)果->數(shù)據(jù)落地信息->常用使用場景歸納。
DWS 層(Data Warehouse Summary)
該層級主要在 DWD 層明細數(shù)據(jù)的基礎(chǔ)上針對業(yè)務(wù)實體跨業(yè)務(wù)主題域建設(shè)匯總指標,根據(jù)統(tǒng)計場景,設(shè)計匯總指標模型。
APP 層(Application)
作為對接具體應(yīng)用的數(shù)倉層級,由 ByteHouse 提供統(tǒng)一的數(shù)據(jù)服務(wù),是基于 DWD 和 DWS 層對外提供一些定制化實時流。