多維分析主要面向業務用戶提供數據查詢分析服務,由于業務人員不懂 SQL,也無法完成多表關聯(有意義的查詢經常是基于多表的),所以在多維分析建模階段需要將多表轉換成單表,也就是 CUBE。這樣用戶就可以很方便地通過基于一個結果集(CUBE)進行拖拽查詢,從不同的角度(維度)觀察數據(測度)。
在多維分析中主要的計算就是按照某一個或一些維度匯總測度,如按地區匯總銷售額,按年和產品匯總銷量等。從運算角度來看,多維分析的本質計算就是:
基于一個表的分組匯總
如果用 SQL 來表達,多維分析的本質就是:
SELECT D,…, SUM(M), … FROM C WHERE D’=d’ AND … GROUP BY D,…
即對數據立方體按某些維度分組匯總某些測度。其中 C 是數據立方體,D,…是選出維度,M,…是聚合測度,聚合函數也可以不是 SUM。D’是切片維度,切塊時條件為 D IN (d,…),WHERE 中還可以增加針對某些測度的條件,一般也就是選出某個區間內的值。
針對一個結果集(CUBE),多維分析可以進行切片 / 切塊、旋轉、鉆取 / 上卷等操作。
1. 切片
切片是指針對 CUBE,選擇維中固定值進行分析,比如固定時間維度分析地區和產品的銷量情況。
2. 旋轉
旋轉也稱行列變換,是指維度從行到列或者從列到行,旋轉是為了滿足用戶觀察數據的不同習慣。
3. 鉆取
鉆取是從粗粒度到細粒度觀察數據的過程,比如我們發現某個匯總值出現異常,就可以通過鉆取查看明細數據,找到異常原因。鉆取可以從匯總到明細,從上級到下級…
從多維分析的本質及其操作來看,多維分析只能完成簡單的分組匯總、過濾計算,這在實際業務中還遠遠不夠。常見的固定報表業務,一些報表很難通過簡單的分組聚合來實現,經常要編寫上千行的 SQL 或存儲過程,而且固定報表的表格樣式可能很復雜,這些都是多維分析無法實現的。
這種報表數據處理邏輯復雜,每個格子可能對應不同的數據來源,計算邏輯也不一樣,在樣式方面則會出現表頭混亂,大格套小格,動態區域和靜態區域混合的情況。
這里列舉了復雜報表的特點: 傳說中的中國復雜報表都長什么樣?有什么特點? 這些類型的報表都無法通過多維分析拖拽出來。
事實上,固定報表和自助報表(多維分析)面向的需求場景很不一樣,而在 BI 系統中往往會包含三部分內容,固定報表、多維分析和可視化,其中可視化可以由前兩部分實現,但固定報表和多維分析往往是不可或缺的,二者相互配合,優勢互補。認清了多維分析的能量圈,才能在 BI 系統建設中有的放矢,避免踩坑。
對多維分析和 BI 技術感興趣的同學還可以搜索“乾學院”,上面有整套的免費“商業智能”技術課程, 或者直接訪問下面鏈接:
http://www.raqsoft.com.cn/wx/course-Business-Intelligence.html