2013-10-07 75 views
0

我們擁有龐大的流量數據庫(呼叫數據記錄)。由於記錄數量和硬件限制,我們無法使用源詳細記錄進行報告。因此,我們使用15分鐘的時間間隔彙總關係數據庫中的記錄,然後立即截斷源數據。這些彙總記錄(時間段內的事件)存儲在倉庫中,然後用於事實數據表(MOLAP)。時間跨度/週期存儲在SYS_TIME_SLICES維度表,簡化版本是:實現SSAS立方體的TIME SPAN/PERIOD尺寸的方法

CREATE TABLE [dbo].[SYS_TIME_SLICES] (
    [ID] [int] IDENTITY(1, 1) NOT NULL, 
    [DATETIME_START] [datetime] NOT NULL, 
    [DATETIME_END] [datetime] NOT NULL 
) ON [PRIMARY] 

第一記錄:

DATETIME_START  DATETIME_END 
01-Jan-13 00:00:00 01-Jan-13 00:15:00 
01-Jan-13 00:15:00 01-Jan-13 00:30:00 

現在我們把這個成立方體,我不知道該怎麼辦它根據最佳實踐。我已經檢查了「分步」書,一些關於時間維度和相關商務智能的互聯網教程,仍然沒有線索。將TIME_SLICES維度標記爲時間會產生一些奇怪的結果。將DATETIME_END標記爲DateEnded類型會產生更奇怪的結果。

我對SSAS相對較新,但擁有15年處理SQL和客戶報告的經驗,所以我確實瞭解我想要什麼以及如何在常規SQL中執行此操作。

我們必須提供小時,日,周和月的粒度報告。這可以很容易地完成,只需手動修改和配置TIME_SLICES維度的屬性(包含某些層次結構)(不帶任何SSAS特殊魔術)。但我希望有TIME的商業智能(Day Over Day Growth等)的所有鐘聲。

更重要的是舊數據(6個月以上)永不更新,並且其源倉庫表正在歸檔。在立方體中,我們只需要按日細節級別的舊數據,從而節省服務器上的空間。這在某種程度上是通過分區實現的 - 但我不確定有關時間的細節。

考慮到上面的考慮,對於這個TIME SPAN/PERIOD維度有沒有推薦/常用的方法?任何提示?任何關於主題的書籍?我們應該改變倉庫邏輯嗎?

這與SSAS - Facts that happened over a time range有關,但有一個不同的問題。我們正在使用2008r2,但可根據需要升級到2012年。

回答

1

在大多數情況下,最好對日期和時間使用兩個單獨的維度。在你的情況下,只有96(24 * 4)個成員。這些可以聚合到幾個小時,並且取決於報告/用戶對其他時間範圍(如班次名稱)的需求。我會爲此使用一個整數鍵,也許是從14點15分到下午2點30分(即hour of start * 100 + minutes of start)的時間跨度的「發言鍵」。這可以很容易地從DATETIME_START列中計算事實表中的外鍵。但是您也可以爲每條記錄分配無意義的整數代理鍵。

日期維度將包含天作爲粒度,並且可能具有諸如星期幾假期的屬性是/否,月,年,季度......這非常依賴於報告必需品。此處更好地準備更多屬性,因爲這可以讓報表的生活更輕鬆。維度表的記錄很少,因此不需要太多限制屬性的數量。您可以對此表的整數主鍵使用類似的結構,例如e。 G。 2013年10月9日,2013年9月。但同樣,只是一個任意的整數代理鍵也可以。