數倉 維度建模與緩慢變化維

2021-10-05 08:40:33 字數 1497 閱讀 3234

維度表示你要對資料進行分析時所的乙個量, 比如你要分析產品銷售情況, 你可以選擇按類別來進行分析,或按區域來分析. 這樣的按..分析就構成乙個維度。前面的示例就可以有兩個維度:型別和區域。另外每個維度還可以有子維度(稱為屬性),例如類別可以有子型別產品名等屬性。下面是兩個常見的維度表結構:

產品維度表:prod_id, product_name, category, color, size, price

時間維度表:timekey, season, year, month, date

而事實表是資料聚合後依據某個維度生成的結果表。它的結構示例如下:

銷售事實表:prod_id(引用產品維度表), timekey(引用時間維度表), salesamount(銷售總量,以貨幣計), unit(銷售量)

上面的這些表就是存在於資料倉儲中的。從這裡可以看出它有幾個特點:

1. 維度表的冗餘很大,主要是因為維度一般不大(相對於事實表來說的),而維度表的冗餘可以使事實表節省很多空間。

2. 事實表一般都很大,如果以普通方式查詢的話,得到結果一般發的時間都不是我們可以接受的。所以它一般要進行一些特殊處理。如sql server 2005就會對事實表進行如預生成處理等。

3. 維度表的主鍵一般都取整型值的標誌列型別,這樣也是為了節省事實表的儲存空間。

維度建模的資料倉儲中,有乙個概念叫slowly changing dimensions,中文一般翻譯成"緩慢變化維",經常被簡寫為scd。

緩慢變化維:

維度建模的資料倉儲中,有乙個概念叫slowly changing dimensions,中文一般翻譯成"緩慢變化維",經常被簡寫為scd。緩慢變化維的提出是因為在現實世界中緩慢變化維,維度的屬性並不是靜態的,它會隨著時間的流失發生緩慢的變化。這種隨時間發生變化的維度我們一般稱之為緩慢變化維,並且把處理維度表的歷史變化資訊的問題稱為處理緩慢變化維的問題,有時也簡稱為處理scd的問題。

處理緩慢變化維的方法通常分為三種方式:

第一種方式是直接覆蓋原值。這樣處理,最容易實現,但是沒有保留歷史資料,無法分析歷史變化資訊。第一種方式通常簡稱為"type 1"。

第二種方式是新增維度行。這樣處理,需要**鍵的支援。實現方式是當有維度屬性發生變化時,生成一條新的維度記錄,主鍵是新分配的**鍵,通過自然鍵可以和原維度記錄保持關聯。第二種方式通常簡稱為"type 2"。

第三種方式是新增屬性列。這種處理的實現方式是對於需要分析歷史資訊的屬性新增一列,來記錄該屬性變化前的值,而本屬性字段使用type 1來直接覆蓋。這種方式的優點是可以同時分析當前及前一次變化的屬性值,缺點是只保留了最後一次變化資訊。第三種方式通常簡稱為"type 3"。

在實際建模中,我們可以聯合使用三種方式,也可以對乙個維度表中的不同屬性使用不同的方式,這些,都需要根據實際情況來決定,但目的都是一樣的,就是能夠支援方便的分析歷史變化情況。

維度建模的緩慢變化維

1維度建模的數倉中,有乙個概念scd slowly channing dimensions.緩慢變化維。因為在現實世界中,維度的屬性並不是靜態的,它會隨著時間的流失而發生緩慢的變化,這種隨時間發生變化的維度我們稱之為緩慢變化維。如何處理緩慢變化維的影響,舉個例子 以使用者的地理資訊來舉例 第一種方法...

數倉 正規化建模 維度建模

third normal form,3nf 是資料模型常用的乙個方法,主要解決關係型資料庫的資料儲存。目前關係型資料庫的建模方法,大部分採用三正規化建模,即通過實體關係 entity relationship,er 模型描述企業業務。是資料倉儲之父inmon提出的集線器的自上而下 edw dm 的資...

數倉維度建模之維度表設計(基礎概念一)

對業務過程的度量稱為事實 在維度建模中,將度量稱為 事實 將環境描述為 維度 維度是用於分析事實所需要的多樣環境 維度所包含的表示維度的列,稱為維度屬性 如開門方式是維度,具體11種方式是維度屬性 維度屬性是查詢約束條件 分組和的基本 是資料包表標籤生成易用性的關鍵。維度的作用一般是查詢約束 分類彙...