溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何掌握數(shù)據(jù)倉(cāng)庫(kù)分層架構(gòu)

發(fā)布時(shí)間:2021-10-20 16:56:16 來(lái)源:億速云 閱讀:182 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“如何掌握數(shù)據(jù)倉(cāng)庫(kù)分層架構(gòu)”,在日常操作中,相信很多人在如何掌握數(shù)據(jù)倉(cāng)庫(kù)分層架構(gòu)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何掌握數(shù)據(jù)倉(cāng)庫(kù)分層架構(gòu)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

一、為什么要分層

分層的主要原因是在管理數(shù)據(jù)的時(shí)候,能對(duì)數(shù)據(jù)有一個(gè)更加清晰的掌控,詳細(xì)來(lái)講,主要有下面幾個(gè)原因:

清晰數(shù)據(jù)結(jié)構(gòu):

每一個(gè)數(shù)據(jù)分層都有它的作用域,這樣我們?cè)谑褂帽淼臅r(shí)候能更方便地定位和理解。

方便數(shù)據(jù)血緣追蹤:

簡(jiǎn)單來(lái)說(shuō),我們最終給業(yè)務(wù)呈現(xiàn)的是一個(gè)能直接使用業(yè)務(wù)表,但是它的來(lái)源有很多,如果有一張來(lái)源表出問(wèn)題了,我們希望能夠快速準(zhǔn)確地定位到問(wèn)題,并清楚它的危害范圍。

減少重復(fù)開(kāi)發(fā):

規(guī)范數(shù)據(jù)分層,開(kāi)發(fā)一些通用的中間層數(shù)據(jù),能夠減少極大的重復(fù)計(jì)算。

把復(fù)雜問(wèn)題簡(jiǎn)單化:

將一個(gè)復(fù)雜的任務(wù)分解成多個(gè)步驟來(lái)完成,每一層只處理單一的步驟,比較簡(jiǎn)單和容易理解。而且便于維護(hù)數(shù)據(jù)的準(zhǔn)確性,當(dāng)數(shù)據(jù)出現(xiàn)問(wèn)題之后,可以不用修復(fù)所有的數(shù)據(jù),只需要從有問(wèn)題的步驟開(kāi)始修復(fù)。

屏蔽原始數(shù)據(jù)的異常:

屏蔽業(yè)務(wù)的影響,不必改一次業(yè)務(wù)就需要重新接入數(shù)據(jù)

二、數(shù)倉(cāng)分層思想

數(shù)據(jù)分層每個(gè)企業(yè)根據(jù)自己的業(yè)務(wù)需求可以分成不同的層次,但是最基礎(chǔ)的分層思想,理論上數(shù)據(jù)分為三個(gè)層,數(shù)據(jù)運(yùn)營(yíng)層、數(shù)據(jù)倉(cāng)庫(kù)層和數(shù)據(jù)服務(wù)層?;谶@個(gè)基礎(chǔ)分層之上添加新的層次,來(lái)滿(mǎn)足不同的業(yè)務(wù)需求。

數(shù)據(jù)運(yùn)營(yíng)層(ODS)

Operate data  store(操作數(shù)據(jù)-存儲(chǔ)),是最接近數(shù)據(jù)源中數(shù)據(jù)的一層,數(shù)據(jù)源中的數(shù)據(jù),經(jīng)過(guò)抽取、洗凈、傳輸,也就說(shuō)傳說(shuō)中的ETL之后,裝入ODS層。本層的數(shù)據(jù),總體上大多是按照源頭業(yè)務(wù)系統(tǒng)的分類(lèi)方式而分類(lèi)的。例如:MySQL里面的一張表可以通過(guò)sqoop之間抽取到ODS層  ODS層數(shù)據(jù)的來(lái)源方式:

  • 業(yè)務(wù)庫(kù)

經(jīng)常會(huì)使用sqoop來(lái)抽取,比如我們每天定時(shí)抽取一次。在實(shí)時(shí)方面, 可以考慮用canal監(jiān)聽(tīng)mysql的binlog,實(shí)時(shí)接入即可。

  • 埋點(diǎn)日志

線(xiàn)上系統(tǒng)會(huì)打入各種日志,這些日志一般以文件的形式保存,我們可以選擇用flume定時(shí)抽取,也可以用用spark  streaming或者Flink來(lái)實(shí)時(shí)接入,當(dāng)然,kafka也會(huì)是一個(gè)關(guān)鍵的角色。

  • 消息隊(duì)列

來(lái)自ActiveMQ、Kafka的數(shù)據(jù)等

數(shù)據(jù)倉(cāng)庫(kù)層(DW)

Data  warehouse(數(shù)據(jù)倉(cāng)庫(kù))。在這里,從ODS層中獲得的數(shù)據(jù)按照主題建立各種數(shù)據(jù)模型。例如以研究人的旅游消費(fèi)為主題的數(shù)據(jù)集中,便可以結(jié)合航空公司的登機(jī)出行信息,以及銀聯(lián)系統(tǒng)的刷卡記錄,進(jìn)行結(jié)合分析,產(chǎn)生數(shù)據(jù)集。在這里,我們需要了解四個(gè)概念:維(dimension)、事實(shí)(Fact)、指標(biāo)(Index)和粒度(  Granularity)。

DW數(shù)據(jù)分層,由下到上為 DWD,DWB,DWS

DWD:data warehouse detail 細(xì)節(jié)數(shù)據(jù)層,是業(yè)務(wù)層與數(shù)據(jù)倉(cāng)庫(kù)的隔離層。DWB:data warehouse base  基礎(chǔ)數(shù)據(jù)層,存儲(chǔ)的是客觀數(shù)據(jù),一般用作中間層,可以認(rèn)為是大量指標(biāo)的數(shù)據(jù)層。DWS:data warehouse service  服務(wù)數(shù)據(jù)層,基于DWB上的基礎(chǔ)數(shù)據(jù),整合匯總成分析某一個(gè)主題域的服務(wù)數(shù)據(jù),一般是寬表

數(shù)據(jù)服務(wù)層/應(yīng)用層(ADS):

Application Data  Service(應(yīng)用數(shù)據(jù)服務(wù))。該層主要是提供數(shù)據(jù)產(chǎn)品和數(shù)據(jù)分析使用的數(shù)據(jù),一般會(huì)存放在ES、MySQL等系統(tǒng)中供線(xiàn)上系統(tǒng)使用,也可能會(huì)存在Hive或者Druid中供數(shù)據(jù)分析和數(shù)據(jù)挖掘使用。例如:我們經(jīng)常說(shuō)的報(bào)表數(shù)據(jù),或者說(shuō)那種大寬表,一般就放在這里。

三、阿里數(shù)據(jù)倉(cāng)庫(kù)分層架構(gòu)

如何掌握數(shù)據(jù)倉(cāng)庫(kù)分層架構(gòu)

ODS 數(shù)據(jù)準(zhǔn)備層

功能:

ODS層是數(shù)據(jù)倉(cāng)庫(kù)準(zhǔn)備區(qū),為DWD層提供基礎(chǔ)原始數(shù)據(jù),可減少對(duì)業(yè)務(wù)系統(tǒng)的影響

建模方式及原則:

從業(yè)務(wù)系統(tǒng)增量抽取、保留時(shí)間由業(yè)務(wù)需求決定、可分表進(jìn)行周期存儲(chǔ)、數(shù)據(jù)不做清洗轉(zhuǎn)換與業(yè)務(wù)系統(tǒng)數(shù)據(jù)模型保持一致、按主題邏輯劃分

DWD 數(shù)據(jù)明細(xì)層

功能:

為DW層提供來(lái)源明細(xì)數(shù)據(jù),提供業(yè)務(wù)系統(tǒng)細(xì)節(jié)數(shù)據(jù)的長(zhǎng)期沉淀,為未來(lái)分析類(lèi)需求的擴(kuò)展提供歷史數(shù)據(jù)支撐

建模方式及原則:

數(shù)據(jù)模型與ODS層一致,不做清洗轉(zhuǎn)換處理、為支持?jǐn)?shù)據(jù)重跑可額外增加數(shù)據(jù)業(yè)務(wù)日期字段、可按年月日進(jìn)行分表、用增量ODS層數(shù)據(jù)和前一天DWD相關(guān)表進(jìn)行merge處理

DW(B/S) 數(shù)據(jù)匯總層

功能:

為DW、ST層提供細(xì)粒度數(shù)據(jù),細(xì)化成DWB和DWS;

DWB是根據(jù)DWD明細(xì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,如維度轉(zhuǎn)代理鍵、身份證清洗、會(huì)員注冊(cè)來(lái)源清晰、字段合并、空值處理、臟數(shù)據(jù)處理、IP清晰轉(zhuǎn)換、賬號(hào)余額清洗、資金來(lái)源清洗等;

DWS是根據(jù)DWB層數(shù)據(jù)按各個(gè)維度ID進(jìn)行高粒度匯總聚合,如按交易來(lái)源,交易類(lèi)型進(jìn)行匯合

建模方式及原則:

  • 聚合、匯總增加派生事實(shí);

  • 關(guān)聯(lián)其它主題的事實(shí)表,DW層可能會(huì)跨主題域;

  • DWB保持低粒度匯總加工數(shù)據(jù),DWS保持高粒度匯總數(shù)據(jù);

  • 數(shù)據(jù)模型可能采用反范式設(shè)計(jì),合并信息等。

Data Market (數(shù)據(jù)集市)層

功能:

可以是一些寬表,是根據(jù)DW層數(shù)據(jù)按照各種維度或多種維度組合把需要查詢(xún)的一些事實(shí)字段進(jìn)行匯總統(tǒng)計(jì)并作為單獨(dú)的列進(jìn)行存儲(chǔ);

滿(mǎn)足一些特定查詢(xún)、數(shù)據(jù)挖掘應(yīng)用

應(yīng)用集市數(shù)據(jù)存儲(chǔ)

建模方式及原則:

盡量減少數(shù)據(jù)訪(fǎng)問(wèn)時(shí)計(jì)算(優(yōu)化檢索)

維度建模,星型模型;

分表存儲(chǔ)

ST 數(shù)據(jù)應(yīng)用層(ADS層)

功能:

ST層面向用戶(hù)應(yīng)用和分析需求,包括前端報(bào)表、分析圖表、KPI、儀表盤(pán)、OLAP、專(zhuān)題等分析,面向最終結(jié)果用戶(hù)

適合做OLAP、報(bào)表模型,如ROLAP,MOLAP

聯(lián)機(jī)事務(wù)處理OLTP、聯(lián)機(jī)分析處理OLAP。

OLTP是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的主要應(yīng)用,主要是基本的、日常的事務(wù)處理,例如銀行交易。

OLAP是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的主要應(yīng)用,支持復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢(xún)結(jié)果。

聯(lián)機(jī)分析處理的用戶(hù)是企業(yè)中的專(zhuān)業(yè)分析人員及管理決策人員,他們?cè)诜治鰳I(yè)務(wù)經(jīng)營(yíng)的數(shù)據(jù)時(shí),從不同的角度來(lái)審視業(yè)務(wù)的衡量指標(biāo)是一種很自然的思考模式。例如分析銷(xiāo)售數(shù)據(jù),可能會(huì)綜合時(shí)間周期、產(chǎn)品類(lèi)別、分銷(xiāo)渠道、地理分布、客戶(hù)群類(lèi)等多種因素來(lái)考量。

根據(jù)DW層經(jīng)過(guò)聚合匯總統(tǒng)計(jì)后的粗粒度事實(shí)表

建模方式及原則:

保持?jǐn)?shù)據(jù)量小;

維度建模,星形模型;

各位維度代理鍵+度量;

增加數(shù)據(jù)業(yè)務(wù)日期字段,支持?jǐn)?shù)據(jù)重跑;

不分表存儲(chǔ)

到此,關(guān)于“如何掌握數(shù)據(jù)倉(cāng)庫(kù)分層架構(gòu)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI