整理業務庫的庫表字段和字段含義的時候,遇到了碼表的概念,碼表是什么,和維度表又是什么關系呢?
首先,碼表沒有明確的定義。
百度搜索碼表,可以看到和數據處理相關的解釋是:碼表是 編碼表(或代碼表)的簡稱。
- 編碼表:
是一種代碼說明表格。
用來幫助用戶明確無解釋數據和字符 代碼的含義。
例如:性別碼表的值為男和女。類似於數據字典。
以性別代碼表為例:
sex | value |
1 | 男 |
2 | 女 |
我想獲得一個性別為男的值只需要設置sex.id='1'就可以了。
以上就是關於碼表的介紹。
我們不禁想到這和數據倉庫的維度表定義類似。
- 維度表
簡單的把維度表理解為對某類事務粒度的抽離及細化。
維度表中的取值,可以通過group by取出。
- 從另一個角度去區分事實表和維度表,
存放業務數據的是事實表。
從事實表中抽象提取出的和業務無關的表就是維度表。
數據倉庫最常見的維度表是時間維度表
- 維度表的特點:
是抽象提取出的、和業務無關、很少變化的表。
- 那么維度表的作用,也不難總結:
可以非常有效的減少事實表的占用空間。
占用空間減小,在分析數據時,做表的掃描,效率也會大大提升。
對事實表中數據的取值做了規范。方便統計和查詢。
- 維度表的管理
一般,某個字段可以抽象出有限個數的取值,都可以建立維度表。常見的維度有時間,地點,職業等等。
維度表在數據倉庫中應該有單獨的一層:dim 層(dimension)。
這里是我總結的一些概念,便於大家理解,如果想要深入研究,
可以參考下面的鏈接:
維度表的建設:
https://blog.net/selfsojourner/article/details/80478389
https://www.jianshu.com/p/292de1ae3e02?from=timeline&isappinstalled=0
時間維度表:
https://www.cnblogs.com/wuhuacong/archive/2010/05/19/1738199.html
https://wenku.baidu.com/view/0ef540155acfa1c7ab00cc20.html
援引一段總結:
每個數據倉庫都包含一個或者多個事實數據表。事實數據表可能包含業務銷售數據,如現金登記事務
所產生的數據,事實數據表通常包含大量的行。
事實數據表的主要特點是包含數字數據(事實),並且這些數字信息可以匯總,
以提供有關單位作為歷史的數據,每個事實數據表包含一個由多個部分組成的索引,該索引包含作為外鍵的相關性維度表的主鍵,
而維度表包含事實記錄的特性。
事實數據表不應該包含描述性的信息,也不應該包含除數字度量字段及使事實與維度表中對應項的相關索引字段之外的任何數據。