您好,登錄后才能下訂單哦!
上次我們理解了維度表,哪什么是緩慢變化維呢,比如我們有這樣的一個場景, A 客戶在 4 月份的時候歸屬于 X 部門,在 5 月的時候歸屬于 Y 部門,如果 A 客戶的銷售額需要體現歸屬部門的變化關系。此時就需要用到緩慢變化維了。如下圖就是對客戶表的一個緩慢變化。
上面設計就是對每個月把客戶生成一份數據,但如果我們的客戶有 100 萬個呢,每月生成一份,一年后就有 1200 萬了,這樣導致數據量會很大,在關聯的時候會嚴重影響性能。哪么我們就需要用緩慢變化維的設計方案了,采用代理鍵方案來達到最少數據量。如下圖:
我們通過對客戶表的開始日期和結束日期框定每個客戶的當前版本,然后落地數據時把客戶的代理鍵帶上,這樣以后在做數據分析時,如果結果表帶的客戶維度信息不全,就可以直接用代理鍵關聯客戶維表帶出需要的維度,如果此時沒有代理鍵做關聯,采用客戶代碼做關聯,就會出現數據笛卡爾積,如下圖,當我們需要對結果表增加客戶的“歸屬部門名稱”時,有“代理鍵”信息時,則直接按代理鍵做關聯條件帶出客戶維表里的“歸屬部門名稱”信息,如果按“客戶代碼”關聯,則會導致數據翻倍,見紅色數據記錄, 4 月的由 100 變化到 200 了, 5 月份的 200 變化到 400 了,不然就需要重新計算每個月的數據才能達到增加“歸屬部門名稱”信息的目的。
生成緩慢變化維的 SQL 代碼見 :
https://github.com/blt328/dw_blt
更多技術文章請關注公眾號
(
長按后點識別圖中二維碼
):
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。