數據倉庫、商業智能及維度建模初步
記錄一下讀《數據倉庫工具箱》時的思考,摘錄一些書中關于維度建模比較重要的思想與大家分享🤣🤣🤣
博主在這里先把這本書"變薄"~有時間的小伙伴可以親自再讀一讀,感受一下"變厚"再"變薄"的過程。歡迎交流討論哈🤣🤣🤣
數據倉庫、商業智能及維度建模初步
- 數據倉庫、商業智能及維度建模初步
- 1.1 數據獲取與數據分析的區別
- 1.2 數據倉庫與商業智能的目標
- 1.3 維度建模簡介
- 1.3.1 星型模式與OLAP多維數據庫
- 1.3.2 用于度量的事實表
- 1.3.2 用于描述環境的維度表
- 1.3.4 星型模式中維度與事實的連接
- 1.4 Kimball的DW/BI架構
- 1.4.1 操作型源系統
- 1.4.2 獲取-轉換-加載(ETL)系統
- 1.4.3 用于支持商業智能決策的展現區
- 1.4.4 商業智能應用
- 1.4.5 以餐廳為例描述Kimball架構
- 1.5 其他DW/BI架構
- 1.6 維度建模神話
- 1.6.1 神話1:維度模型僅包含匯總數據
- 1.6.2 神話2:維度模型是部門級而不是企業級的
- 1.6.3 神話3:維度模型是不可擴展的
- 1.6.4 神話4:維度模型僅用于預測
- 1.6.5 神話5:維度模型不能被集成
- 水平有限,歡迎在評論區討論交流~
數據倉庫和商業智能(Data Warehousing and Bussiness Intelligence,DW/BI)系統首先應該考慮的問題是業務需求。
tips:技術服務于業務,不能一味的追求技術上的精進,對于業務的精準把握與理解同等重要😎。
1.1 數據獲取與數據分析的區別
信息幾乎總是用作兩個目的:(書上這兩點總結的可以說非常到位了🤣)
- 操作型記錄的保存—操作型系統保存數據。
- 分析型決策的制定—DW/BI系統使用數據。
(1)操作型系統的用戶確保組織正常運轉。🍬
-
對操作型系統進行優化的目的—更快地處理事務。
-
操作型系統一般一次處理一個事務記錄,通常不必維護歷史數據,只需修改數據以反映最新的狀態。
(2)DW/BI系統的用戶研究分析企業的運轉,并對其性能進行評估。🍬
- 分析并判斷操作型過程是否處于正確的工作狀態。
- DW/BI系統一般不會一次只處理一個事務(回答用戶的查詢通常需要搜索成千上萬的事務,并將查詢結果放入一個查詢集合中)。
- DW/BI系統的用戶通常要求保存歷史環境,用于精確地評估組織在一段時間內的性能。
- 對DW/BI系統進行優化的目的是高性能的完成用戶的查詢。
1.2 數據倉庫與商業智能的目標
書中引入了幾個挺有意思的話題:🤣🤣🤣
- 🍕我們收集了海量的數據,但無法對其訪問
- 🍔我們需要以各種方式方便地對數據進行切片以及切塊
- 🍟業務人員需要方便地獲取數據
- 🌭將最重要的事情展示給我
- 🍿會議自始至終爭論的是誰的數字正確,而不是制定決策
- 🥞我們希望人們能過夠使用信息來支持更多的基于事實的決策制定
大家看了上面的topic,想必已經對DW/BI系統需要解決的問題以及目標有所感悟🤣🤣🤣。
摘錄一下書中關于DW/BI系統目標最重要的兩點:
-
(1)DW/BI系統必須成為提高決策能力的權威和可信的基礎。
-
(2)DW/BI系統成功的標志是業務群體接受DW/BI系統。
書中關于DW/BI系統管理者的責任總結的非常到位,列位可以向這些目標所靠攏,思考一下怎么去做好自己的工作。(不要感覺枯燥,個人認為文中講的每一點都值得仔細推敲,能做到這些都是業界翹楚啦🤣🤣🤣)
(1)理解業務用戶🍕
-
理解他們的工作責任、目標和任務🍞
tips(個人見解):理解業務用戶的日常職責、面臨的挑戰以及他們需要達成的目標是什么。了解這些,才能確保系統提供的功能是符合他們需求的。 -
確定商業用戶在制定哪些決策時需要DW/BI系統的幫助🥐
tips(個人見解):不同的業務用戶需要DW/BI系統幫助的決策點不同。明確哪些決策點是關鍵,并為這些決策提供必要的支持。 -
識別出那些制定高效、高影響決策的“最佳用戶”🥨
tips(個人見解):并不是所有用戶的決策對公司影響一樣大。有些人負責的是戰略層面的決策,他們的決策可能對公司發展有著更大影響。需要識別出這些關鍵人物,確保他們能夠得到系統支持。 -
發現潛在的新用戶,并讓他們意識到DW/BI系統能夠給他們帶來什么能力🥖
tips(個人見解):在公司中,可能有一些部門或角色還沒有充分意識到DW/BI系統的價值。應該主動發現這些潛在的新用戶,向他們展示如何通過數據分析提升工作效率或決策質量。
(2)對業務用戶發布高質量、相關的、可訪問的信息和分析🍕
-
選擇最健壯、可操作的數據放入DW/BI系統中🧀
tips(個人見解):數據是DW/BI系統的核心,但并不是所有數據都值得投入。需要確保選擇的是最有用、最可靠的數據,這些數據應該能夠支持業務決策,并且是容易被使用和理解的。 -
簡化用戶接口和應用,采用模版驅動方式,與用戶的認知過程輪廓匹配🥗
tips(個人見解):為了讓業務用戶能夠順利使用DW/BI系統,應該簡化用戶界面,并通過模板等方式幫助用戶輕松獲取所需的信息。就好像把復雜的報表變成一個簡單的圖表,用戶看得懂、用得方便。 -
確保數據精確、可信,使其標識在整個企業具有一致性🥙
tips(個人見解):如果系統中的數據不準確,業務決策將會受到嚴重影響。確保數據的質量和一致性是底線。比如,財務部門的數據與銷售部門的數據必須一致,不能因為數據的差異導致錯誤的決策。 -
不間斷地監控數據和分析的準確性🥪
tips(個人見解):DW/BI系統不是一次性建設完成的,而是一個持續更新的過程。需要定期監控數據的質量,確保信息和分析的準確性。如果發現問題,及時修正,避免誤導業務決策。 -
適應用戶不斷變化的思維方式、需求和業務優先級,及新數據源的可用性🌮
tips(個人見解):業務環境在不斷變化,用戶的需求和思維方式也在變化。需要快速響應這些變化,不斷調整系統,滿足用戶新的需求和新的數據源。
(3)維護DW/BI環境🍕
-
采用DW/BI系統制定的成功的業務決策,驗證人員配置及要投入的開支🥫
-
定期對DW/BI系統進行更新🍖
tips(個人見解):技術和業務需求都在不斷發展,DW/BI系統需要不斷進行更新和優化。這不僅僅是技術上的更新,還包括數據、模型和功能上的更新,確保系統始終滿足業務需求。 -
保持業務用戶的信任🥩
tips(個人見解):用戶對系統的信任是系統能否成功應用的關鍵。如果業務用戶認為系統的數據不準確,或者界面難用,他們就不會愿意使用。需要保證系統的穩定性、可靠性,并且定期與用戶溝通,解決他們的疑慮,保持他們的信任。 -
保持業務用戶、執行贊助商和IT管理層滿意度🍠
tips(個人見解):DW/BI系統的成功不僅僅是技術團隊的責任,還需要業務部門的支持、管理層的贊助和持續投入。確保各方面的利益相關者都對系統感到滿意,確保系統能夠持續發展和優化。
1.3 維度建模簡介
維度建模并不是一種新技術,早期主要用于簡化數據庫。簡單性至關重要,確保快速有效發現、公布結果。
維度建模是展現分析數據的首選技術:
- 以商業用戶可理解的方式發布數據。
- 提供高效的查詢性能。
從簡單的數據模型開始是保持設計簡單性的基礎。如果從復雜的數據模型起步,最終會導致模型過度復雜,查詢性能低下,最終使商業用戶反感。
盡管維度模型通常應用在關系數據庫管理系統上,但是并不要求維度模型必須滿足3NF(第三范式)。
- 3NF主要是為了消除冗余,規范化的3NF將數據劃分為多個不同的實體,每個實體構成一個關系表。(滿足3NF可能會出現“北京地鐵線路圖”,超級復雜😂😂😂)
- 業界有時將3NF模型稱為實體-關系模型(ER模型—實體關系圖表示了表間的交互關系)。但是3NF和維度模型都可以用ER模型表示,因為都包含可連接的關系表。主要差別在于規范化程度,書中強調不要將ER模型當成3NF模型。
- 規范化的3NF模型主要應用于操作過程中,因為對事務的更新與插入僅僅觸及數據庫的單一地方。
- 然而,對于BI查詢來說,規范化模型太復雜,用戶難以理解、檢索。維度建模則解決了模式過分復雜的問題。
Tips:😎 維度模型包含的信息與規范化模型包含的信息相同,但將數據以一種用戶可理解的、滿足查詢性能要求的、靈活多變的方式進行了包裝。
1.3.1 星型模式與OLAP多維數據庫
- 在RDBMS中實現的維度模型稱為星型模式(結構類似星星🤣🤣🤣)。
- 在多維數據庫環境中實現的維度模型通常稱為聯機分析處理(OnLine Analytical Processing,OLAP)多維數據庫。
- 如果采用的DW/BI環境包括星型模式或者OLAP多維數據庫,則可以說是利用了維度概念。
1.3.2 用于度量的事實表
-
維度模型中的事實表存儲組織機構業務過程事件的性能度量結果。“事實”這一術語表示某個業務度量。
-
應該盡量將來源于同一個業務過程的底層度量結果存儲于一個維度模型中。因為度量的數據量巨大,所以不應該為滿足多個組織功能的需要而將這些數據存放在多個地方。
- 應該允許多個組織的業務用戶訪問同一個單一的集中式數據倉庫,確保他們能在整個企業中使用一致的數據。(保持一致性🤣🤣🤣)
- 事實表中的每行對應一個度量事件。每行中的數據是一個特定級別的細節數據,稱為粒度。
- 維度建模的核心原則之一——同一事實表中所有度量行必須具有相同的粒度(確保不會出現重復計算度量的問題)。
Tips😎:
- 物理世界的每一個度量事件與對應的事實表行具有一對一的關系,這一思想是維度建模的基本原則。其他工作都是以此為基礎建立的。
- 最實用的事實是數值類型和可加類型事實,可加性至關重要,因為BI應用不太可能僅僅檢索事實表的單一行。🤣🤣🤣 一般都是一次檢索成百上千行甚至百萬級別的事實表行(最有用的操作就是把他們加在一起)。
- 一般事實表具有兩個或者更多的外鍵與維度表中的主鍵關聯,可以通過維度表使用連接操作來實現對事實表的訪問。
- 通常幾個維度一起唯一標識每一個事實表行。
Sales_ID | Customer_ID | Product_ID | Date_ID | Store_ID | Sales_Amount | Quantity_Sold |
---|---|---|---|---|---|---|
1 | C001 | P001 | 20240101 | S001 | 50 | 2 |
2 | C002 | P003 | 20240102 | S002 | 30 | 1 |
3 | C003 | P002 | 20240103 | S001 | 75 | 3 |
- 如果沒有相關維度,不要試圖以0表示沒有活動發生來填充事實表,因為這些0將會占據大量的事實表。
- 從行的數量來看,事實表趨向于變長。從列的數量來看,事實表趨向于變短。鑒于事實表占據大量空間的實際情況,應該仔細考慮對事實表空間的利用問題。
1.3.2 用于描述環境的維度表
-
維度表包含與業務過程度量事件有關的文本環境(“誰、什么、哪里、何時、如何、為什么”)。
-
維度屬性可以作為查詢約束、分組、報表標識的主要來源。維度屬性對構建DW/BI系統的可用性和可理解性也起著非常重要的作用(屬性應該是真實使用的詞匯而不是令人迷惑的縮寫)。
- 與事實表比較,維度表趨向于包含較少的行,但由于可能存在大量文本列而導致存在多列的情況。
- 維度表通常以層次關系表示。例如產品抽象為品牌,然后抽象為類別。(層次描述信息雖然存在冗余,但可以方便使用和提高查詢性能。)
產品鏈 | 產品描述 | 品牌名稱 | 類別名稱 |
---|---|---|---|
P001 | Phone A | Apple | Electronics |
P002 | Phone B | Samsung | Electronics |
P003 | Sports Shoes C | Nike | Sportswear |
P004 | Laptop D | Dell | Electronics |
P005 | Running Shoes E | Adidas | Sportswear |
P006 | Sofa F | IKEA | Furniture |
- 維度表通常不一定要滿足3NF,常常是非規范化的,一個維度表往往存在多對一的關系。
Tips😎:
- 一個數字量到底是事實還是維度屬性,對設計者來說是一個兩難的問題。一般認為:連續值數字基本上可以認為屬于事實,來自于一個不太大的列表的離散數字基本可認為是維度屬性。
- 多數情況下,數據倉庫的好壞直接取決于維度屬性的設置;DW/BI環境的分析能力直接取決于維度屬性的質量和深度。——強大的維度熟悉帶來的回報是健壯的分片-分塊能力。
1.3.4 星型模式中維度與事實的連接
維度模型表示每個業務過程包含事實表,事實表存儲事件的數值化度量,圍繞事實表的是多個維度表,維度表包含事件發生時實際存在的文本環境。
- 維度模型首先需要注意的是其簡單性(對業務用戶有利,屬于易于理解和查詢)和對稱性。
- 維度模型的簡單性也會帶來性能方面的好處。數據庫優化器在處理這些很少使用連接操作的簡單模式會更加高效。
- 維度模型非常適于變化。每個維度的地位都相同,所有維度在事實表中都存在對應的入口點。如果業務用戶建議采用新的模式分析業務,不需要調整模式(例如需要添加一個新的維度(比如“渠道”維度),只需要在維度表中添加一個新的維度數據表,并且通過外鍵與事實表連接即可)。
1.4 Kimball的DW/BI架構
Kimball的DW/BI架構分為四個不同的組成部分:
- 操作型源系統、ETL系統、數據展現、商業智能應用。
1.4.1 操作型源系統
- 操作型源系統是指產生原始數據的業務系統,也就是日常運營中使用的系統(主要關注處理性能和可用性)。
- 操作型源系統中的數據通常是事務性的、實時的,用于支持日常的業務操作。源系統中的數據是進入數據倉庫的基礎。
- 數據的結構通常是 規范化的(即數據盡量避免冗余),以優化數據的存儲和處理效率。
- 源系統一般不維護歷史信息,好的數據倉庫可以更好地承擔源系統表示過去情況的責任。
1.4.2 獲取-轉換-加載(ETL)系統
ETL(Extract, Transform, Load)系統是整個數據倉庫架構中的關鍵部分。它的主要任務是從操作型源系統中獲取數據,進行必要的轉換,并將數據加載到數據倉庫中。
-
獲取(Extract):
- 從操作型源系統中提取數據。這些數據可以來自不同的數據庫、文件系統、API等。
- 獲取過程需要從不同的數據源抽取數據,并確保數據的完整性。
-
轉換(Transform):
- 數據在ETL過程中需要進行轉換,使其符合數據倉庫的設計要求和業務需求。轉換的過程可能包括:
- 清洗:例如,處理缺失數據、去除重復數據、規范化字段格式(如日期格式統一)。
- 計算:進行各種業務計算,如匯總、加總、平均值計算等。
- 映射和整合:將來自不同系統的數據映射到統一的標準,合并不同數據源中的信息。
- 數據質量驗證:確保數據的正確性和一致性。
- 數據在ETL過程中需要進行轉換,使其符合數據倉庫的設計要求和業務需求。轉換的過程可能包括:
-
加載(Load):
- 將清洗和轉換后的數據加載到數據倉庫中。根據數據倉庫的設計,數據可以按 批量加載(如每晚一次)或者 實時加載(如使用流式處理)。
ETL系統的目標是確保數據倉庫中的數據是高質量、統一的,并且能夠快速響應業務決策的需求。
1.4.3 用于支持商業智能決策的展現區
展現區(Presentation Layer)是數據倉庫的核心部分,也是支持商業智能(BI)決策的基礎。這個區域存儲著經過ETL處理、符合查詢需求的數據。
展現區的設計通常遵循以下模式:
-
星型模式(Star Schema):在這種模式下,數據倉庫的核心是 事實表,它包含了業務數據(如銷售數量、金額等)。圍繞事實表,存在多個 維度表,它們提供了業務數據的上下文(如時間、產品、客戶等)。星型模式簡單、易理解,適合高效查詢。
-
雪花模式(Snowflake Schema):與星型模式相似,但維度表進一步規范化,形成類似雪花形狀的結構。雖然雪花模式減少了數據冗余,但查詢性能相對較差,通常適用于需要較復雜分析的情況。
-
數據集市(Data Mart):對于大型企業來說,可能會將整個數據倉庫分成多個小的 數據集市,每個數據集市針對特定部門或業務領域(如銷售數據集市、財務數據集市等)。數據集市通常是數據倉庫的一個子集,能夠提供特定部門所需的數據。
Tips:
《數據倉庫工具箱》第三版中關于展現區設計的重要原則:
-
數據應該以維度模型來展現(星型模型或OLAP多維數據庫):
- 維度模型是數據倉庫中的一種常見結構,主要用于支持高效的查詢和分析。在展現區,數據應該通過星型模型或OLAP多維數據庫來組織和展現。
- 星型模型由一個中心的事實表和多個與其相連的維度表組成。這種結構非常直觀,易于理解,適合快速查詢和多維分析。
- OLAP多維數據庫則是另一種將數據按照多個維度組織的方式,通常通過數據立方體來實現,支持更加靈活和復雜的查詢方式,如切片、切塊、鉆取等。
- 維度模型的設計有助于高效地支持報表和數據分析,它可以將復雜的數據結構簡化為便于理解和查詢的格式。
-
必須包含詳細的原子數據:
- 展現區不僅要提供匯總和聚合數據,還應當包含詳細的原子數據。這些原子數據是數據倉庫中的基礎單元,是任何高級分析或報表的構建基礎。
- 原子數據通常來自于數據倉庫的事實表,它包含每個事件或交易的基本信息,如銷售記錄、交易金額等。通過提供原子數據,業務用戶可以更深入地分析數據,進行詳細的鉆取、追蹤和分析。
- 例如,銷售數據不僅應該提供銷售額的匯總,還應該包括每一筆交易的詳細記錄,支持用戶進行更精細的分析和探索。
-
圍繞業務過程度量事件來構建:
- 展現區的數據應該圍繞業務過程度量事件來構建。業務過程是指企業運作中的關鍵活動或操作,如銷售、生產、庫存等。每一個業務過程通常會產生度量數據(如銷售額、生產數量等)。
- 在設計展現區時,應該確保這些業務過程的度量數據在事實表中得到體現,并且能夠被按不同的維度進行分析。例如,銷售過程的度量數據可以按時間、區域、產品等維度進行分析,幫助決策者更好地理解業務情況。
- 這種以度量事件為核心的設計方式有助于確保數據倉庫中的數據反映了實際的業務活動,符合業務需求。
-
必須使用公共且一致的維度建立維度結構,遵守總線結構:
- 展現區應該使用公共且一致的維度來構建維度結構。維度表是數據倉庫中用來描述和分析數據的結構,它們與事實表中的度量數據一起使用來生成報表和分析視圖。
- 總線結構是一種標準化的數據倉庫設計方法,要求在整個數據倉庫中使用一致的維度。這些維度表應當在所有數據集市中共享,以確保不同部門或功能區域使用的是一致的數據。
- 使用一致的維度結構有助于確保跨業務部門或功能區域的數據能夠進行一致性分析,并提高數據的可維護性和可擴展性。例如,客戶維度、時間維度、產品維度等應該在整個數據倉庫中保持一致,避免不同區域或部門使用不同版本的維度數據。
1.4.4 商業智能應用
商業智能應用是最終用戶用來訪問數據倉庫和展現區的工具。它們包括各種用于數據分析、報告和決策支持的應用程序和工具。
-
報表工具:用于生成定期的業務報告。例如,財務報告、銷售報告等。
-
儀表盤(Dashboards):可視化工具,幫助用戶實時查看業務關鍵指標(KPI),例如銷售額、利潤、庫存等。儀表盤通常用于監控和跟蹤實時業務數據。
-
OLAP(在線分析處理)工具:支持多維分析,讓用戶能夠從不同的角度分析數據。例如,用戶可以按時間、地點、產品等多個維度查看銷售數據。
-
數據挖掘工具:用于深入分析數據,發現潛在的趨勢、模式和關系。例如,預測模型、客戶行為分析等。
-
自助式BI工具:例如Tableau、Power BI等,它們使業務用戶能夠不依賴IT部門,自主探索數據、生成報告和創建可視化圖表。
1.4.5 以餐廳為例描述Kimball架構
在《數據倉庫工具箱》第三版的1.4.5節中,書中通過餐廳的例子來描述了Kimball架構:
餐廳的運營流程:
- 顧客點餐:顧客是餐廳的用戶,他們通過點餐開始了整個過程。在這個比喻中,顧客就代表了業務用戶,他們需要通過數據倉庫來獲取所需的信息。
- 廚房準備食物:餐廳的廚房代表著數據倉庫的ETL過程(數據提取、轉換和加載)。數據從不同的來源系統提取出來,經過清洗和轉換,最終被準備好(類似食物的準備過程),然后進入展現區,供顧客(業務用戶)享用。
- 菜單設計:餐廳的菜單類似于數據倉庫中的數據模型,它列出了顧客可以選擇的各種菜品。在數據倉庫中,菜單是指數據模型的設計,例如使用維度模型(如星型模型)來組織和展示數據,確保業務用戶能夠通過簡單的查詢快速獲得所需信息。
- 顧客享用餐食:顧客最終通過餐廳的服務(例如點餐系統、服務員等)享用食物,這個環節對應了數據倉庫的用戶訪問層。業務用戶通過BI工具或其他應用程序,訪問和分析數據,以支持決策。
Kimball架構的關鍵特點:
- 業務需求驅動:餐廳的設計和菜單是根據顧客需求來決定的,類似地,Kimball架構強調數據倉庫的設計必須從業務需求出發,確保數據倉庫能夠滿足最終用戶的需求。
- 數據集市(Data Mart):餐廳的菜單可以看作是不同的數據集市。在Kimball架構中,數據倉庫通常被分為多個數據集市,針對不同的業務領域(如銷售、財務、客戶等)進行優化。這些數據集市通過共享的維度模型(如星型模型)來整合成一個整體的企業數據倉庫。
- ETL流程:數據倉庫的ETL流程就像餐廳的廚房一樣,負責從多個數據源提取數據、進行清洗和轉化,然后將數據加載到數據倉庫中的事實表和維度表。這個過程確保了數據的質量和一致性。
- 共享維度:餐廳的菜單上的菜品和價格等信息是統一的,Kimball架構要求所有的數據集市都應使用公共且一致的維度,例如客戶、時間、產品等維度,從而確保跨部門和跨業務領域的數據能夠一致地進行分析和報表生成。
- 以分析為驅動:餐廳不僅要提供美食,還要根據顧客需求不斷調整菜單。同樣,數據倉庫的設計不僅僅是為了存儲數據,更是為了支持分析和決策。因此,Kimball架構強調圍繞業務過程(如銷售、生產、庫存等)來設計數據倉庫,確保數據能夠高效支持各種業務分析需求。
1.5 其他DW/BI架構
這一小節不太重要,略過啦~
1.6 維度建模神話
維度建模(尤其是星型模型)是數據倉庫設計的核心,但它也有一些誤解存在,這些誤解可能導致數據倉庫設計的誤區。
《數據倉庫工具箱》第三版1.6節中關于維度建模的一些常見誤解做出的解釋:
1.6.1 神話1:維度模型僅包含匯總數據
-
神話內容:許多人認為維度模型只處理匯總數據,即將大量的詳細數據聚合到一個簡化的視圖中,進行統計分析。
-
現實:實際上,維度模型不僅包含匯總數據,還包含原始的、詳細的事務數據。維度模型的目的是讓用戶能夠靈活地對數據進行多維度查詢和分析。這些維度表中的數據可以支持從匯總到細節的各種查詢。比如,用戶不僅可以查詢“銷售總額”,還可以鉆取到每一筆具體的銷售記錄。
結論:維度模型可以同時存儲詳細數據和匯總數據,提供更深層次的分析能力。
1.6.2 神話2:維度模型是部門級而不是企業級的
-
神話內容:有人認為維度模型僅適用于某一部門(如銷售、財務等)級別的業務分析,而不能跨部門或跨企業進行整合。
-
現實:維度模型的設計可以是企業級的,通過使用共享的維度(例如,時間、客戶、產品等)來保證跨部門的數據一致性。這種設計方式能夠促進跨部門的數據整合,使得整個企業的數據倉庫形成統一的數據視圖。例如,一個企業可以有多個部門的數據集市,但這些集市都會共享一個統一的客戶維度、時間維度等,確保數據的一致性和互操作性。
結論:維度模型設計可以服務于整個企業,而不僅僅是某個部門。通過共享維度,維度模型能夠實現企業級的數據整合和分析。
1.6.3 神話3:維度模型是不可擴展的
-
神話內容:有些人認為維度模型一旦設計好,就無法擴展或修改。例如,增加新的維度或度量項會很困難。
-
現實:維度模型具有很高的可擴展性。隨著業務需求的變化,新的維度、事實表或度量項可以輕松地被添加到現有的模型中。例如,可以根據新的業務需求,增加客戶地域、產品類別等維度,或者增加新的指標(如新的銷售渠道或服務類型)。通過適當的設計,維度模型能夠適應業務的發展,支持業務的不斷擴展。
結論:維度模型具有很好的可擴展性,能夠根據業務需求的變化靈活調整。
1.6.4 神話4:維度模型僅用于預測
-
神話內容:有人誤以為維度模型僅用于預測分析(如趨勢預測、需求預測等),而不適用于其他類型的數據分析。
-
現實:維度模型廣泛應用于各種類型的數據分析,不僅僅局限于預測。它能夠支持包括歷史數據分析、運營數據監控、性能分析等多種分析需求。維度模型通過多維度視角支持報表生成、趨勢分析、KPI(關鍵績效指標)分析等各類業務決策,幫助企業在多個維度上進行深入分析。
結論:維度模型不僅適用于預測分析,還可以廣泛用于歷史數據分析、報表生成、趨勢分析等多種類型的商業智能分析。
1.6.5 神話5:維度模型不能被集成
-
神話內容:有些人認為維度模型無法與其他數據源(如大數據平臺、數據湖等)進行集成,因此它只能在傳統數據倉庫環境中使用。
-
現實:維度模型是非常靈活的,可以與多種不同的數據源集成,包括傳統的關系型數據庫、大數據平臺、云數據倉庫以及數據湖等。通過適當的數據集成方法和工具,維度模型可以從多種數據源抽取數據,并統一存儲和管理。無論是從結構化數據源,還是從非結構化數據源(如日志數據、文本數據等)獲取的數據,都可以集成到維度模型中,進行統一分析。
結論:維度模型不僅能與傳統數據倉庫集成,還可以與大數據平臺、云計算和數據湖等現代數據架構集成。