多維分析的本質計算是什麼?能做什麼又不能做什麼?

bubblegum發表於2020-08-18

多維分析主要面向業務使用者提供資料查詢分析服務,由於業務人員不懂 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,選擇維中固定值進行分析,比如固定時間維度分析地區和產品的銷量情況。
imagepng

2. 旋轉
旋轉也稱行列變換,是指維度從行到列或者從列到行,旋轉是為了滿足使用者觀察資料的不同習慣。
imagepng

3. 鑽取
鑽取是從粗粒度到細粒度觀察資料的過程,比如我們發現某個彙總值出現異常,就可以透過鑽取檢視明細資料,找到異常原因。鑽取可以從彙總到明細,從上級到下級…
imagepng

從多維分析的本質及其操作來看,多維分析只能完成簡單的分組彙總、過濾計算,這在實際業務中還遠遠不夠。常見的固定報表業務,一些報表很難透過簡單的分組聚合來實現,經常要編寫上千行的 SQL 或儲存過程,而且固定報表的表格樣式可能很複雜,這些都是多維分析無法實現的。

這種報表資料處理邏輯複雜,每個格子可能對應不同的資料來源,計算邏輯也不一樣,在樣式方面則會出現表頭混亂,大格套小格,動態區域和靜態區域混合的情況。
imagepng

這裡列舉了複雜報表的特點: 這些型別的報表都無法透過多維分析拖拽出來。

事實上,固定報表和自助報表(多維分析)面向的需求場景很不一樣,而在 BI 系統中往往會包含三部分內容,固定報表、多維分析和視覺化,其中視覺化可以由前兩部分實現,但固定報表和多維分析往往是不可或缺的,二者相互配合,優勢互補。認清了多維分析的能量圈,才能在 BI 系統建設中有的放矢,避免踩坑。

對多維分析和 BI 技術感興趣的同學還可以搜尋“乾學院”,上面有整套的免費“商業智慧”技術課程, 或者直接訪問下面連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957599/viewspace-2712469/,如需轉載,請註明出處,否則將追究法律責任。

相關文章