退化維度的維度表可以被剔除,從而簡化維度數據倉庫的模式。因為簡單的模式比復雜的更容易理解,也有更好的查詢性能。
當一個維度沒有數據倉庫需要的任何數據時就可以退化此維度。需要把退化維度的相關數據遷移到事實表中,然后刪除退化的維度。
維度屬性也可以存儲到事實表中,這種存儲到事實表中的維度列被稱為“退化維度”。與其他存儲在維表中的維度一樣 ,退化維度也可以用來進行事實表的過濾查詢、實現聚合操作等。那么究竟怎么定義退化維度呢?比如說訂單id,這種量級很大的維度,沒必要用一張維度表來進行存儲,而我們進行數據查詢或者數據過濾的時候又非常需要,所以這種就冗余在事實表里面,這種就叫退化維度,citycode這種我們也會冗余在事實表里面,但是它有對應的維度表,所以它不是退化維度。
kimball書中描述退化維度如下:操作型事務控制號碼,例如:訂單號碼、發票號碼、提貨單號碼通常產生空的維度並且寶石為事務事實表中的退化維度。退化維度是沒有對應維度表的維度鍵。
維度退化在事實表中有利於使用,一般一個維度鍵都有對應的維表,如果退化在事實表中,可以減少關聯次數,並且退化維可以用於group by操作,進行分組統計。
來自文章:https://blog.csdn.net/a6822342/article/details/100162307