數(shù)倉實(shí)戰(zhàn)02:數(shù)倉理論

1.范式理論

1. 范式概念
1)定義
范式可以理解為設(shè)計(jì)一張數(shù)據(jù)表的表結(jié)構(gòu),符合的標(biāo)準(zhǔn)級(jí)別。 規(guī)范和要求
2)優(yōu)點(diǎn)
關(guān)系型數(shù)據(jù)庫設(shè)計(jì)時(shí),遵照一定的規(guī)范要求,目的在于降低數(shù)據(jù)的冗余性。
為什么要降低數(shù)據(jù)冗余性?
(1)十幾年前,磁盤很貴,為了減少磁盤存儲(chǔ)。
(2)以前沒有分布式系統(tǒng),都是單機(jī),只能增加磁盤,磁盤個(gè)數(shù)也是有限的
(3)一次修改,需要修改多個(gè)表,很難保證數(shù)據(jù)一致性
3)缺點(diǎn)
范式的缺點(diǎn)是獲取數(shù)據(jù)時(shí),需要通過 Join 拼接出最后的數(shù)據(jù)。
4)分類
目前業(yè)界范式有:
第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式 (BCNF)、第四范式(4NF)、第五范式(5NF)。

2. 函數(shù)依賴

3. 三范式區(qū)分
第一范式


第二范式

第三范式

2.關(guān)系建模與維度建模

當(dāng)今的數(shù)據(jù)處理大致可以分成兩大類:聯(lián)機(jī)事務(wù)處理 OLTP(on-line transaction processing)、聯(lián)機(jī)分析處理 OLAP(On-Line Analytical Processing)。OLTP 是傳統(tǒng)的關(guān)系 型數(shù)據(jù)庫的主要應(yīng)用,主要是基本的、日常的事務(wù)處理,例如銀行交易。OLAP 是數(shù)據(jù)倉庫 系統(tǒng)的主要應(yīng)用,支持復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。二 者的主要區(qū)別對(duì)比如下表所示。

對(duì)比屬性 OLTP OLAP
讀特性 每次查詢只返回少量記錄 對(duì)大量記錄進(jìn)行匯總
寫特性 隨機(jī)、低延時(shí)寫入用戶的輸入 批量導(dǎo)入
使用場景 用戶,Java EE 項(xiàng)目 內(nèi)部分析師,為決策提供支持
數(shù)據(jù)表征 最新數(shù)據(jù)狀態(tài) 隨時(shí)間變化的歷史狀態(tài)
數(shù)據(jù)規(guī)模 GB TB 到 PB

2.1 關(guān)系建模


關(guān)系模型如圖所示,嚴(yán)格遵循第三范式(3NF),從圖中可以看出,較為松散、零碎, 物理表數(shù)量多,而數(shù)據(jù)冗余程度低。由于數(shù)據(jù)分布于眾多的表中,這些數(shù)據(jù)可以更為靈活地 被應(yīng)用,功能性較強(qiáng)。關(guān)系模型主要應(yīng)用與 OLTP 系統(tǒng)中,為了保證數(shù)據(jù)的一致性以及避免 冗余,所以大部分業(yè)務(wù)系統(tǒng)的表都是遵循第三范式的。

上面維度模型如圖所示,主要應(yīng)用于 OLAP 系統(tǒng)中,通常以某一個(gè)事實(shí)表為中心進(jìn)行表的 組織,主要面向業(yè)務(wù),特征是可能存在數(shù)據(jù)的冗余,但是能方便的得到數(shù)據(jù)。 關(guān)系模型雖然冗余少,但是在大規(guī)模數(shù)據(jù),跨表分析統(tǒng)計(jì)查詢過程中,會(huì)造成多表關(guān) 聯(lián),這會(huì)大大降低執(zhí)行效率。所以通常我們采用維度模型建模,把相關(guān)各種表整理成兩種: 事實(shí)表和維度表兩種。

2.2 維度建模
在維度建模的基礎(chǔ)上又分為三種模型:星型模型、雪花模型、星座模型。


3.維度表和事實(shí)表

3.1 維度表
維度表:一般是對(duì)事實(shí)的描述信息。每一張維表對(duì)應(yīng)現(xiàn)實(shí)世界中的一個(gè)對(duì)象或者概念。 例如:用戶、商品、日期、地區(qū)等。
維表的特征:
維表的范圍很寬(具有多個(gè)屬性、列比較多)
跟事實(shí)表相比,行數(shù)相對(duì)較?。和ǔ?lt; 10 萬條
內(nèi)容相對(duì)固定:編碼表
舉例:
時(shí)間維度表:

3.2 事實(shí)表
事實(shí)表中的每行數(shù)據(jù)代表一個(gè)業(yè)務(wù)事件(下單、支付、退款、評(píng)價(jià)等)?!笆聦?shí)”這 個(gè)術(shù)語表示的是業(yè)務(wù)事件的度量值(可統(tǒng)計(jì)次數(shù)、個(gè)數(shù)、件數(shù)、金額等),例如,訂單事 件中的下單金額。
每一個(gè)事實(shí)表的行包括:具有可加性的數(shù)值型的度量值、與維表相連接的外鍵、通常具 有兩個(gè)和兩個(gè)以上的外鍵、外鍵之間表示維表之間多對(duì)多的關(guān)系。
事實(shí)表的特征:
非常的大
內(nèi)容相對(duì)的窄
列數(shù)較少
經(jīng)常發(fā)生變化,每天會(huì)新增加很多。
1)事務(wù)型事實(shí)表
以每個(gè)事務(wù)或事件為單位,例如一個(gè)銷售訂單記錄,一筆支付記錄等,作為事實(shí)表里的 一行數(shù)據(jù)。一旦事務(wù)被提交,事實(shí)表數(shù)據(jù)被插入,數(shù)據(jù)就不再進(jìn)行更改,其更新方式為增量 更新
2)周期型快照事實(shí)表
周期型快照事實(shí)表中不會(huì)保留所有數(shù)據(jù),只保留固定時(shí)間間隔的數(shù)據(jù),例如每天或者 每月的銷售額,或每月的賬戶余額等。
3)累積型快照事實(shí)表 累計(jì)快照事實(shí)表用于跟蹤業(yè)務(wù)事實(shí)的變化。例如,數(shù)據(jù)倉庫中可能需要累積或者存儲(chǔ) 訂單從下訂單開始,到訂單商品被打包、運(yùn)輸、和簽收的各個(gè)業(yè)務(wù)階段的時(shí)間點(diǎn)數(shù)據(jù)來跟蹤 訂單聲明周期的進(jìn)展情況。當(dāng)這個(gè)業(yè)務(wù)過程進(jìn)行時(shí),事實(shí)表的記錄也要不斷更新。

4.數(shù)據(jù)倉庫建模

4.1 ODS 層
(1)保持?jǐn)?shù)據(jù)原貌不做任何修改,起到備份數(shù)據(jù)的作用。
(2)數(shù)據(jù)采用壓縮,減少磁盤存儲(chǔ)空間(例如:原始數(shù)據(jù) 100G,可以壓縮到 10G 左 右)
(3)創(chuàng)建分區(qū)表,防止后續(xù)的全表掃描
4.2 DWD 層
DWD 層需構(gòu)建維度模型,一般采用星型模型,呈現(xiàn)的狀態(tài)一般為星座模型。
維度建模一般按照以下四個(gè)步驟:
選擇業(yè)務(wù)過程→聲明粒度→確認(rèn)維度→確認(rèn)事實(shí)
(1)選擇業(yè)務(wù)過程
在業(yè)務(wù)系統(tǒng)中,挑選我們感興趣的業(yè)務(wù)線,比如下單業(yè)務(wù),支付業(yè)務(wù),退款業(yè)務(wù),物流 業(yè)務(wù),一條業(yè)務(wù)線對(duì)應(yīng)一張事實(shí)表
(2)聲明粒度
數(shù)據(jù)粒度指數(shù)據(jù)倉庫的數(shù)據(jù)中保存數(shù)據(jù)的細(xì)化程度或綜合程度的級(jí)別。
聲明粒度意味著精確定義事實(shí)表中的一行數(shù)據(jù)表示什么,應(yīng)該盡可能選擇最小粒度,以 此來應(yīng)各種各樣的需求。
典型的粒度聲明如下:
訂單中,每個(gè)商品項(xiàng)作為下單事實(shí)表中的一行,粒度為每次下單 每周的訂單次數(shù)作為一行,粒度就是每周下單。 每月的訂單次數(shù)作為一行,粒度就是每月下單
(3)確定維度
維度的主要作用是描述業(yè)務(wù)是事實(shí),主要表示的是“誰,何處,何時(shí)”等信息。
(4)確定事實(shí)
此處的“事實(shí)”一詞,指的是業(yè)務(wù)中的度量值,例如訂單金額、下單次數(shù)等。 在 DWD 層,以業(yè)務(wù)過程為建模驅(qū)動(dòng),基于每個(gè)具體業(yè)務(wù)過程的特點(diǎn),構(gòu)建最細(xì)粒度的 明細(xì)層事實(shí)表。事實(shí)表可做適當(dāng)?shù)膶挶砘幚怼?br>



至此,數(shù)倉的維度建模已經(jīng)完畢,DWS、DWT 和 ADS 和維度建模已經(jīng)沒有關(guān)系了。
DWS 和 DWT 都是建寬表,寬表都是按照主題去建。主題相當(dāng)于觀察問題的角度。對(duì) 應(yīng)著維度表。

4.3 DWS 層
統(tǒng)計(jì)各個(gè)主題對(duì)象的當(dāng)天行為,服務(wù)于 DWT 層的主題寬表,以及一些業(yè)務(wù)明細(xì)數(shù)據(jù), 應(yīng)對(duì)特殊需求(例如,購買行為,統(tǒng)計(jì)商品復(fù)購率)。

4.4 DWT 層
以分析的主題對(duì)象為建模驅(qū)動(dòng),基于上層的應(yīng)用和產(chǎn)品的指標(biāo)需求,構(gòu)建主題對(duì)象的全 量寬表。

4.5 ADS 層
對(duì)電商系統(tǒng)各大主題指標(biāo)分別進(jìn)行分析。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容