《資料倉儲工具箱:維度建模的完全指南》筆記總結
此篇是關於本書的讀書筆記總結,因為在這方面的理解還是比較初級的狀態,有誤之處還望指教。
個人認為這本書對於資料倉儲的建模思路有一個很明確的描述:圍繞事實表建立維度表。對資料倉儲的建設有關鍵步驟上的指點:
四步流程:
1. 確定業務流程
2. 確定粒度
3. 確定維度
4. 確定事實表
另外一方面,由於這本書的出版時間大約在2005年前,因此對於Hadoop之類的分散式概念沒有涉及,姑且可以認為是傳統資料倉儲建模的建模流程(這裡的表述未必準確,因為本書主要是概念性的指導而非物理實現的說明,因此對於資料建模還是有很大的參考價值的)。而且不知道是不是翻譯的差異,感覺行文比較囉嗦,經常看了半天也抓不住重點。
這裡列舉一些感觸較深的概念:
1. 因果維度:如果某個維度的變化會導致事實表變化,則稱其為因果維度。事實上,每個維度(比如時間維度)的變化都會造成事實表(比如銷售量)的變化,因果維度的特殊性在於這種變化是主動的,用來描述決策者行為對事實表的變化,而時間等維度更多的是自然性的變化。
因果維度的對立面是偶然維度,這個概念我也沒有足夠了解,可能指的是相關而非因果的資訊。
促銷維度是一種典型的因果維度,其中包括降價,活動等等,見第二章
2. 匯流排結構:這是對於公司不同部分在資料倉儲建設方面的關聯方法,增量的構建資料倉儲。既然不同業務部門都要建立資料倉儲,作者提出按業務而不是按部門建立資料倉儲,因此匯流排流水式符合業務的執行流程,可以更好的與業務結合,畢竟資料倉儲的目標是服務業務的
3. 值鏈:描述機構主體活動的自然邏輯流程。主要目標是將業務中先分解為幾個部分,不同部分可能分別由操作型源系統構成。
操作型源系統即OLTP,和資料倉儲的區別是normalized. 我個人認為normalized和denormalized問題如同CPU密集和IO密集型應用一樣,是資料倉儲和資料庫最最根本的分別。(雪花型和星型反映的也是資料倉儲的規範化程式,即應用中的半規範化概念)。
4. 半加性事實:在某些維度下可加,在另外一些維度下不可加的事實。比如銀行存款,在日期維度上,一週後的存款不等於每天結算時的存款總額,而在銀行網點維度上,一個城市的總存款等於各個分行的存款總額。
5. 混合事實表:某些應用中,事實表的事實可能存在內在關聯,那麼是把它們分裂作為不同的事實表,還是混合作為一個整體的事實表需要考量。
6. 漸變維度:在業務發生調整時基本保持不變的維度,與之相對應的是快變維度,比如某個維度表的屬性經常性的發生取值變化。
7. 一致性維度:避免不同業務部門對於維度定義的不統一,這也是資料倉儲團隊的主要工作之一,避免同一個概念的不同表述。
8. 三種基本的事實表:
(1)事務:記錄基本的事務活動
(2)週期性快照 : 規律性的時間插入
(3)累計快照:存在重新存取
9. 維度支架:一種雪花狀模型使用的條件,其特點是最外延的維度表很多屬性,它又作為關鍵字給內延維度表查詢使用,合併在一起由於粒度差距較大而會引起極大的冗餘
10. 屬性變化策略
(1) 改變屬性值:對於非關鍵字,可以直接做替換,問題在於無法記錄舊的取值
(2) 新增維度行:如果某個維度的屬性發生變化,那麼不是直接替換原來值,而是生成新值
(3) 新增維度列:比如現部門,前部門。增加一個新的維度列把維度與之間資訊相關聯
另外有一本書<<點選流資料倉儲>>,作者也是Kimball的擁護者,也存在時間較早的遺憾,雖然談了很多具體實現,但和現在的應用環境有較大的區別。網上有很多不錯的建模文章(比如寬表建模,Hive)但還是很希望能有一些接地氣的DW/BI設計書籍可以系統閱讀,如果有可以推薦給我非常歡迎。
相關文章
- 資料倉儲工具箱-維度建模權威指南(第三版)讀書筆記筆記
- 【資料倉儲】|3 維度建模之維度表設計
- 維度處理-資料倉儲-讀書筆記(四)筆記
- 【資料倉儲】|4 維度建模之事實表設計
- 【資料倉儲】|5 維度建模設計和實施過程
- 最新資料倉儲建模指南頂級教程加強版
- 資料倉儲建模方法論
- 工業資料分析之數倉建模 | 正規化建模和維度建模,你pick誰?
- 利用Data vault對資料倉儲建模
- 資料倉儲(8)數倉事實表和維度表技術
- 雲資料建模:為資料倉儲設計資料庫資料庫
- 資料倉儲Build The Data Warehouse(William H.Inmon)學習筆記 --- 第八章、外部資料/非結構化資料與資料倉儲UI筆記
- 利用Data Vault對資料倉儲進行建模(二)
- 維度建模
- 關係建模ER建模-維度建模
- 最最最全資料倉儲建設指南,速速收藏!!
- 資料倉儲建模工具之一——Hive學習第四天Hive
- 企業級資料倉儲遷移工藝和方法論總結
- [學習筆記]SQL server完全備份指南筆記SQLServer
- 資料倉儲建模工具之一——Hive學習第五天Hive
- 資料倉儲建模工具之一——Hive學習第七天Hive
- 資料庫倉庫系列:(一)什麼是資料倉儲,為什麼要資料倉儲資料庫
- 資料維度的python表示(MOOC北理大嵩天課程筆記)Python筆記
- ETL資料倉儲的使用方式
- 資料結構筆記資料結構筆記
- 資料倉儲 - ER模型模型
- [數倉]資料倉儲設計方案
- 資料倉儲與大資料的區別大資料
- 關於資料湖、資料倉儲的想法
- ES 筆記四十六:Elasticsearch 資料建模例項筆記Elasticsearch
- 大資料-數倉學習總結與分享大資料
- 資料倉儲應該用什麼方案——資料倉儲實施方案概述
- EntityFramework Core筆記:儲存資料(4)Framework筆記
- 【資料倉儲】全量表、快照表、增量表、拉鍊表、維度表、實體表、事實表
- kvm筆記總結筆記
- Mybatis筆記總結MyBatis筆記
- 資料湖和中央資料倉儲的設計
- 資料結構筆記——概述資料結構筆記
- 資料結構筆記——棧資料結構筆記