我正在處理聯繫歷史事實表的數據倉庫事實表設計。我目前的架構看起來是這樣的:設計事實表以允許簡單的最近檢測事實類
[FK] DateKey INT
[FK] TimeKey INT
[NK] CustomerNK INT
[NK] CustomerPhoneNK INT
[FK] ContactTypeKey INT
[FK] ContactResultKey INT
[BK] ContactRefBK INT
ContactTS DATETIME
Counter INT (=1)
我的一個應用要求是要找到在ContactType
尺寸的選擇列表最近ContactResult
。 ContactType
維度具有ContactClass
屬性,該屬性將用於標識要過濾的值的範圍。
上述結構讓我得到ContactClass
的ContactType
選擇的所有聯繫信息,我可以處理該列表以獲取最新的值。
問題是,任何人都可以建議對上述內容進行修改,以使特定ContactClass
最近的聯繫事件更簡單嗎?目前這是一個事務性事實表,但如果能改善可用性,我會很樂意改變這一點。
此操作將針對多種客戶(200K +)進行相當頻繁的運行,因此性能非常重要。該操作將在Web界面的C#代碼中完成,因此在此情況下,BI Tool特定的解決方案對我無用。
到目前爲止,我想出的唯一想法是累計事實表,它只記錄每個ContactClass
的最新記錄。任何改進這個選項將不勝感激。
謝謝。它有助於確認我已經在想什麼 - 預先計算數據將是最好的選擇。考慮到最終用戶可能對聯繫人類的最後一次聯繫和最後一次聯繫都感興趣,我將爲每個聯繫人構建一個單獨的事實表,並在ETL過程中從聯繫人事實表中更新它。 – Corey
我會建議,而不是另一個事實表,只是將其保存到現有的事實表或維度,但我沒有真正與整個設計相交。祝你好運! –