最新維度建模學(xué)習(xí)筆記
分享嘉賓:丘山,一線互聯(lián)網(wǎng)數(shù)倉(cāng)開(kāi)發(fā)工程師
編輯整理:交個(gè)朋友
出品平臺(tái):小晨說(shuō)數(shù)據(jù)
效率:數(shù)據(jù)組織結(jié)構(gòu)清晰,提高使用數(shù)據(jù)使用效率
成本:數(shù)據(jù)模型統(tǒng)一整合數(shù)據(jù)并沉淀公共數(shù)據(jù),使用方客減少關(guān)聯(lián)和復(fù)雜邏輯加工,降低數(shù)倉(cāng)的存儲(chǔ)和計(jì)算成本以及理解成本
質(zhì)量:業(yè)務(wù)數(shù)據(jù)質(zhì)量岑差不起,通過(guò)模型加工可改善數(shù)據(jù)質(zhì)量,也可通過(guò)模型對(duì)外輸出統(tǒng)一統(tǒng)計(jì)口徑,降低出錯(cuò)概率
數(shù)倉(cāng)中3nf是面向主題的抽象,典型的代表是teradata發(fā)布的金融 FS-LDM,
當(dāng)事人:當(dāng)事人單個(gè)人或一組人
資產(chǎn):資產(chǎn)當(dāng)事人所有的具有價(jià)值的能夠獲得受益的事務(wù)
財(cái)務(wù):企業(yè)內(nèi)部的會(huì)計(jì)系統(tǒng)
區(qū)域:地理區(qū)域,無(wú)力的或電子的地址
行銷(xiāo)活動(dòng):為了獲取,挽留客戶(hù)或提高用戶(hù)的使用率而采取的戰(zhàn)略,計(jì)劃或促銷(xiāo)活動(dòng)
協(xié)議:在客戶(hù)和金融機(jī)構(gòu)之間達(dá)成的關(guān)于特定產(chǎn)品的協(xié)議
事件:客戶(hù)通過(guò)金融機(jī)構(gòu)的服務(wù)網(wǎng)絡(luò)所實(shí)現(xiàn)的金融或非金融的事件
內(nèi)部組織:金融機(jī)構(gòu)或保險(xiǎn)公司內(nèi)部的業(yè)務(wù)單元
產(chǎn)品:一種可以在市場(chǎng)上交易的產(chǎn)品或服務(wù),包括條款,條件
渠道:客戶(hù)和金融機(jī)構(gòu)或者保險(xiǎn)公司進(jìn)行接觸的途徑
提高數(shù)據(jù)訪問(wèn)效率,空間換時(shí)間
拆解復(fù)雜的處理過(guò)程,分層加工
降低原系統(tǒng)變更影響,層次化讓模型更具有彈性
維度建模:維度建模是從分析的角度,將業(yè)務(wù)數(shù)據(jù)重新按照事實(shí)和維度的形式進(jìn)行組合,用于度量某個(gè)業(yè)務(wù)過(guò)程
樸素維度建模方法
面向原系統(tǒng)維度建模方法
面向業(yè)務(wù)看流程維度建模方法
業(yè)務(wù)過(guò)程:業(yè)務(wù)過(guò)程是組織完成的操作性活動(dòng),例如下單、支付、退款都是業(yè)務(wù)過(guò)程。業(yè)務(wù)過(guò)程是一個(gè)不可拆分的行為事件
粒度:粒度是確定某一事實(shí)表的行表示的是什么,例如,訂單粒度。粒度可已通過(guò)兩種方式表述,一種是具體的業(yè)務(wù)含義,一種是維度屬性組合所表示的細(xì)節(jié)程度
維度;用于描述業(yè)務(wù)過(guò)程中所涉及的,‘誰(shuí),什么,哪里,合適,如何,為什么’等背景,是分析問(wèn)題的一個(gè)窗口,是人們觀察數(shù)據(jù)的特定的角度,一類(lèi)屬性的集合構(gòu)成一個(gè)維度,例如地理維度,包含了國(guó)家,省市區(qū)等級(jí)別的內(nèi)容
維度屬性:維度屬性隸屬于一個(gè)維度,讀地理維度的國(guó)家名稱(chēng),省份名稱(chēng)等都屬于維度屬性
事實(shí):表示對(duì)業(yè)務(wù)過(guò)程的度量,事實(shí)通常是數(shù)字類(lèi)型的,可以進(jìn)行聚合和計(jì)算,例如下單金額
確定業(yè)務(wù)過(guò)程
確定粒度
確定維度
確定事實(shí)
(1)維度常用建
代理建:編號(hào)自動(dòng)生成,布局業(yè)務(wù)含義的建,一般用于處理緩慢變化維
自然建:具有業(yè)務(wù)含義的建,例如區(qū)域維度中,行政區(qū)劃代碼510100作為主鍵
持久建:始終保持不變,不受業(yè)務(wù)變更影響
超自然建:一般在多個(gè)系統(tǒng)融合時(shí)的用的比較多,例如,原系統(tǒng)編碼+原系統(tǒng)自然建拼接為超自然建或者聯(lián)合主鍵
智能建:具有股東的預(yù)先可確定行,如 yyyyMMdd
(2)維度層次結(jié)構(gòu)
作用:可以沿著維度的屬性層次進(jìn)行鉆取
固定深度:層次固定的維度屬性,例如日期維度的年、季度,月
可變深度:輕微層次不齊,但具有最大深度,最常見(jiàn)的是行政區(qū)劃,通常3-6級(jí)別,還有一些深度不確定的層次,通過(guò)遞歸父子關(guān)系實(shí)現(xiàn)鏈接,常見(jiàn)的有類(lèi)目,部門(mén)組織結(jié)構(gòu)等,通常的做法是將其打平,轉(zhuǎn)化為固定深度
(3)規(guī)范化與反規(guī)范化
(4)維度的整合與拆分
垂直整合:維度的不同信息來(lái)源多個(gè)表
水平整合:維度來(lái)源不同數(shù)據(jù)源
水平拆分:維度可以按照類(lèi)型進(jìn)行拆分
垂直拆分:更多考慮的是冷熱屬性的拆分,按穩(wěn)定或經(jīng)常變化的屬性拆分,按照產(chǎn)出事件早晚拆分
拆分原則:擴(kuò)展性、效能、易用性
(5)雜項(xiàng)維度與退化維度
雜項(xiàng)維度:該維度是由操作系統(tǒng)中的指示符或者標(biāo)志字段組合而成,例如訂單類(lèi)型,支付狀態(tài)等
退化維度:維度除了主鍵沒(méi)有其他內(nèi)容可沒(méi)有關(guān)聯(lián)的維度表,但是該主鍵用于統(tǒng)計(jì)
(6)維度的緩慢變化
重寫(xiě):每次用最新的
添加新行:拉鏈表
添加新列:old column,new column
(7)快照維度
(8)一致性維度
一致性維度必要性:保證數(shù)據(jù)協(xié)調(diào)和集成,需要具有一致性維度的企業(yè)總線
可加:罪行或,最有用的事實(shí),可按照事實(shí)表中的任意維度聚合,例如訂單金額
半可加:僅對(duì)模型維度可進(jìn)行聚合的事實(shí),例如商品的庫(kù)存數(shù)
不可加:不具備可加性,常見(jiàn)是比率類(lèi)事實(shí),例如“折扣率”
(1)事務(wù)事實(shí)表:存儲(chǔ)的是發(fā)生某個(gè)時(shí)間點(diǎn)上的一個(gè)事件,最明顯的特點(diǎn)是無(wú)修改操作,僅追加記錄。包括,單事務(wù)事實(shí)表、多事務(wù)事實(shí)表
(2)周期快照事實(shí)表:用于觀察某個(gè)業(yè)務(wù)某個(gè)固定周期內(nèi)的累計(jì)度量,最簡(jiǎn)單的一個(gè)按理為門(mén)店商品庫(kù)存周期快照事實(shí)表
(3)累計(jì)快照事實(shí)表:用于定義過(guò)程開(kāi)始,結(jié)束以及期間的可區(qū)分的里程碑,一個(gè)訂單一條記錄,多個(gè)業(yè)務(wù)過(guò)程數(shù)據(jù)會(huì)更新。(需要確定生命周期,才能確定回刷范圍)
高內(nèi)聚和低耦合:從業(yè)務(wù)特看,業(yè)務(wù)相近相關(guān),粒度相同的設(shè)計(jì)到一個(gè)模型中,相關(guān)度比較高的部分盡可能的集中,不要分散低耦合就是說(shuō)兩個(gè)相關(guān)的模塊盡可以能把依賴(lài)的部分降低到最小,不要讓兩個(gè)系統(tǒng)產(chǎn)生強(qiáng)依賴(lài);從訪問(wèn)特性考慮,將高概率同時(shí)訪問(wèn)數(shù)據(jù)放一起,低概率同時(shí)訪問(wèn)的分?jǐn)偞鎯?chǔ)
公共處理邏輯下沉及單一
成本性能的平衡(不要過(guò)度建模)
數(shù)據(jù)可回滾
一致性
關(guān)注小晨說(shuō)數(shù)據(jù),獲取更多大廠技術(shù)干貨分享
回復(fù)“spark”,“flink”,“中臺(tái)”,“機(jī)器學(xué)習(xí)”,“用戶(hù)畫(huà)像”獲取海量學(xué)習(xí)資料~~~
你也「在看」嗎?
