
數(shù)據(jù)倉庫的幾個原則,讓你避免“陷阱”
想要數(shù)據(jù)粒度的合理性、模型的靈活性得到保證,并且能夠適應未來的信息資源,需要遵守維度建模的一些原則。否則,很容易會遇到數(shù)據(jù)倉庫障礙,并且把用戶弄糊涂。
1.原子數(shù)據(jù)需詳細
維度建模應該使用最基礎的原子數(shù)據(jù)進行填充,以支持不可預知的來自用戶查詢的過濾和分組請求。
用戶通常不希望每次只看到一個單一的記錄,但是你無法預測用戶想要掩蓋或顯示哪些數(shù)據(jù)。如果只有匯總數(shù)據(jù),那么你已經(jīng)設定了數(shù)據(jù)的使用模式,當用戶想要深入挖掘數(shù)據(jù)時,他們就會遇到障礙。盡管原子數(shù)據(jù)通過概要維度建模補充也是一種辦法,但是這樣做的話,企業(yè)用戶便無法只在匯總數(shù)據(jù)上工作,畢竟,他們需要原始數(shù)據(jù)回答不斷變化的問題。
2.使用代理鍵
按順序分配代理鍵(除了日期維度)可以獲得一系列的操作優(yōu)勢,包括更小的事實表、索引以及性能改善。如果你正在跟蹤維度屬性的變化,并需要為每個變化使用一個新的維度記錄,那么代理鍵就顯得十分重要了。因為,即使你的商業(yè)用戶沒有初始化跟蹤屬性改變的設想值,使用代理也會使下游策略變化更寬松。另外,代理也允許使用多個業(yè)務鍵映射到一個普通的配置文件中,這有利于緩沖意想不到的業(yè)務活動。
3.標記和過濾范圍值
值得注意的是,編碼、關聯(lián)的解碼、用于標記和查詢過濾的描述符,應該被捕獲到維度表中,避免在事實表中存儲神秘的編碼字段或龐大的描述符字段。同樣的,不要只在維度表中存儲編碼,而要假定用戶不需要描述性的解碼,或它們將在BI應用程序中得到解決。如果它是一個行/列標記或下拉菜單過濾器,那么它應該當作一個維度屬性處理。
另外,事實表的外鍵不應該為空,同時在維度表的屬性字段中應使用“NA”或另一個默認值來替換空值,這也是明智的,可以減少用戶的困惑。
4.一致的維度,集成整個企業(yè)的數(shù)據(jù)
企業(yè)數(shù)據(jù)倉庫一致的維度(也叫做通用維度、標準或參考維度)是最基本的原則,它在ETL系統(tǒng)中管理一次后,在所有事實表中都可以重用。
一致的維度,在整個維度模型中可以獲得一致的描述屬性,可以支持從多個業(yè)務流程中整合數(shù)據(jù)。企業(yè)數(shù)據(jù)倉庫總線矩陣是最關鍵的架構藍圖,它展現(xiàn)了組織的核心業(yè)務流程和關聯(lián)的維度,重用一致的維度可以縮短產(chǎn)品的上市時間,也消除了冗余設計和開發(fā)過程,但一致的維度需要在數(shù)據(jù)管理和治理方面有較大的投入。
5.圍繞業(yè)務流程建模
業(yè)務流程是組織執(zhí)行的活動,它們代表可測量的事件,如下一個訂單或做一次結算。業(yè)務流程通常會捕獲或生成唯一的與某個事件相關的性能指標,當這些數(shù)據(jù)轉換成事實后,每個業(yè)務流程都會用一個原子事實表表示。除了單個流程事實表外,有時會以多個流程事實表合并成一個事實表,而且合并事實表是對單一流程事實表的一個很好的補充。
6.相同的粒度或同級的詳細程度
在組織事實表時,粒度上有三個基本原則:事務、周期快照、累加快照。無論粒度類型如何,事實表中的度量單位都必須達到相同水平的詳細程度;如果事實表中的事實表現(xiàn)的粒度不一樣,企業(yè)用戶容易混淆,BI應用程序也會隨之變得不堪一擊,從而導致返回的結果不對等低級錯誤的發(fā)生。
7.一對一的關聯(lián)日期維度表
如上文所說,每個可測量事件總有一個日期戳信息,每個事實表至少需要有一個外鍵,能夠關聯(lián)到一個日期維度表,它的粒度就是一天。這個方法,利用的是日歷屬性和非標準的關于測量事件日期的特性,如財務月和公司假日的指示符;當然,有時一個事實表中會有多個日期外鍵。
8.解決多對一關系
屬性之間分層的、多對一(M:1)的關系,通常是未規(guī)范化的,或者被收縮到扁平型的維度表中。如果你曾經(jīng)有過為事務型系統(tǒng)設計實體關系模型的經(jīng)歷,那你一定要摒棄掉舊有的思維模式,將其規(guī)范化或將M:1關系拆分成更小的子維度。維度反向規(guī)范化,便是維度建模中常用的詞匯。
一對一的關系,如一個產(chǎn)品描述對應一個產(chǎn)品代碼,可以在維度表中處理。然而,在單個維度表中,多對一(M:1)的關系也非常常見,在事實表中偶爾也有多對一關系,如當維度表中有上百萬條記錄,而它推出的屬性又經(jīng)常發(fā)生變化時。不管怎樣,在事實表中要慎用M:1關系。
9.解決多對多關系
由于事實表存儲的是業(yè)務流程事件的結果,因此在它們的外鍵之間存在多對多(M:M)的關系,如多個倉庫中的多個產(chǎn)品在多天銷售,這些外鍵字段便不能為空。有時一個維度可以為單個測量事件賦予多個值,如一個保健對應多個診斷,或多個客戶有一個銀行賬號,在這些情況下,它的不合理直接解決了事實表中多值維度,這可能違反了測量事件的天然粒度,因此我們使用多對多、雙鍵橋接表連接事實表。
10.平衡需求和現(xiàn)實,提供DW/BI解決方案
維度建模需要不斷在用戶需求和數(shù)據(jù)源事實之間進行平衡,才能夠提交可執(zhí)行性好的設計。更重要的是,要符合業(yè)務的需要,需求和事實之間的平衡是DW/BI從業(yè)人員必須面對的事實,無論是集中在維度建模,還是項目策略、技術/ETL/BI架構,或開發(fā)/維護規(guī)劃,都要面對這一事實。
總的來說,數(shù)據(jù)倉庫維度建模需要注意的部分挺多,在建模的過程中務必要多留心眼,細致謹慎,這才是成功之道。尤其進入大數(shù)據(jù)時代,與數(shù)據(jù)打交道的機會愈趨增多,要想成為工作中的“常勝將軍”,切忌馬虎。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
MySQL 大表拆分與關聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結構數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結構數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預期算子的內涵、作用與應用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結構數(shù)據(jù)特征價值的專業(yè)核心 表結構數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結構化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應用 在數(shù)據(jù)分析與統(tǒng)計學領域,假設檢驗是驗證研究假設、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結構數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結構數(shù)據(jù)(以 “行 - 列” 存儲的結構化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結構數(shù)據(jù)價值的核心操盤手 表格結構數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務邏輯:從規(guī)則拆解到數(shù)據(jù)把關的實戰(zhàn)指南 在業(yè)務系統(tǒng)落地過程中,“業(yè)務邏輯” 是連接 “需求設計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實踐的落地者與價值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價值,最終要在 “實踐” 中體現(xiàn) —— 脫離業(yè)務場景的分 ...
2025-09-10