2016-12-16 57 views
0

我使用SQL Server 2014和Visual Studio的2015年
我有一個SCD2的工作人員的名字,例如SSAS和SCD2 - 如何應對IsActive排在昏暗

SK  AltKey  Name   Gender IsActive 
1  15   Sven Svensson M  1 
2  16   Jo Jonsson  M  1 

,並在事實表

SK  AgentSK  CallDuration DateKey 
100  1   335    20160808 
101  2   235    20160809 

因此,您可以看到多維數據集當前與FctAgentSK和DimSK鏈接。這按計劃運行。然而,當喬改變性別時,SCD2使該行不活動(0),並插入一個新的行,新的性別和IsActive爲'1'。

我面臨的問題是,factSK 101仍然引用代理的'舊'細節。我應該如何處理這個問題,以便能夠繼續報告呼叫,還要參考代理的「正確」細節 - 反映其當前性別。

當插入一個新事實時,它會分配'NEW'SK,但基本上我需要報告發生在性別變化兩端的所有呼叫。

有什麼建議嗎?

謝謝。

+1

這就是SCD2的工作方式 - 歷史記錄指向舊記錄(及其屬性)。新記錄指向新記錄(它是屬性)。如果您希望歷史記錄更改使用SCD1(只更新記錄)。如果你不希望SCD功能不使用它, –

回答

1

正如Nick.McDermaid所建議的,如果你不想要SCD2的功能,你可以從維度設計中移除它(當它不是真正需要的時候,我經常看到它被過度實現:或許你已經繼承了那種的設置?)。

如果您想要/必須保留SCD2設計,但希望報告當前員工屬性(性別和任何其他SCD2屬性)。

  1. Kimball在此處記錄「類型6」:SCD types 0,4,5,6,7。您將該屬性的「當前」值添加到現有的Type2設計中。然後您只能報告「當前」屬性。

  2. 我假設員工姓名「Alt Key」是持久的員工密鑰,它通過員工屬性的變化保持不變?您可以創建一個稍微不同的員工維度(或員工維度中的層次結構),該維度具有Alt鍵作爲其葉級別密鑰。如果您還沒有將SK作爲維度屬性,則會使維度表「摺疊」爲每個AltKey一個成員,而不是每個SK一個成員。顯然,您不能將任何SCD2屬性添加到此Alt鍵層次結構中,因爲每個鍵不會有單個值;這就引發了一個特殊的問題,即什麼耐用的「僱員」(即什麼葉級別的名稱列將是),因爲僱員名是最明顯的SCD2屬性之一不會保持不變。如上面(1)中所述,可能這種方法最好與維度數據中的「當前值」的基礎「類型6」包含在一起。

+0

Thankyou @SebTHU完全回答我的問題。乾杯 – user3735855

相關問題