OLAP分類的基本概念
OLAP有多種實(shí)現(xiàn)方法,根據(jù)存儲數(shù)據(jù)的方式不同可以分為ROLAP、MOLAP、HOLAP。
ROLAP:表示基于關(guān)系數(shù)據(jù)庫的OLAP實(shí)現(xiàn)(Relational OLAP)。以關(guān)系數(shù)據(jù)庫為核心,以關(guān)系型結(jié)構(gòu)進(jìn)行多維數(shù)據(jù)的表示和存儲。ROLAP將多維數(shù)據(jù)庫的多維結(jié)構(gòu)劃分為兩類表:一類是事實(shí)表,用來存儲數(shù)據(jù)和維關(guān)鍵字;另一類是維表,即對每個(gè)維至少使用一個(gè)表來存放維的層次、成員類別等維的描述信息。維表和事實(shí)表通過主關(guān)鍵字和外關(guān)鍵字聯(lián)系在一起,形成了“星型模式”。對于層次復(fù)雜的維,為避免冗余數(shù)據(jù)占用過大的存儲空間,可以使用多個(gè)表來描述,這種星型模式的擴(kuò)展稱為“雪花模式”。ROLAP的最大好處是可以實(shí)時(shí)地從源數(shù)據(jù)中獲得最新數(shù)據(jù)更新,以保持?jǐn)?shù)據(jù)實(shí)時(shí)性,缺陷在于運(yùn)算效率比較低,用戶等待響應(yīng)時(shí)間比較長。
MOLAP:表示基于多維數(shù)據(jù)組織的OLAP實(shí)現(xiàn)(Multidimensional OLAP)。以多維數(shù)據(jù)組織方式為核心,也就是說,MOLAP使用多維數(shù)組存儲數(shù)據(jù)。多維數(shù)據(jù)在存儲中將形成“數(shù)據(jù)立方體(Cube)”的結(jié)構(gòu),此結(jié)構(gòu)在得到高度優(yōu)化后,可以最大程度地提高查詢性能。隨著源數(shù)據(jù)的更改,MOLAP 存儲中的對象必須定期處理以合并這些更改。兩次處理之間的時(shí)間將構(gòu)成滯后時(shí)間,在此期間,OLAP對象中的數(shù)據(jù)可能無法與當(dāng)前源數(shù)據(jù)相匹配。維護(hù)人員可以對 MOLAP 存儲中的對象進(jìn)行不中斷的增量更新。MOLAP的優(yōu)勢在于由于經(jīng)過了數(shù)據(jù)多維預(yù)處理,分析中數(shù)據(jù)運(yùn)算效率高,主要的缺陷在于數(shù)據(jù)更新有一定延滯。
HOLAP:表示基于混合數(shù)據(jù)組織的OLAP實(shí)現(xiàn)(Hybrid OLAP),用戶可以根據(jù)自己的業(yè)務(wù)需求,選擇哪些模型采用ROLAP,哪些采用MOLAP。一般來說,會(huì)將非常用或需要靈活定義的分析使用ROLAP方式,而常用、常規(guī)模型采用MOLAP實(shí)現(xiàn)。
Cubes:是數(shù)據(jù)立方體。何為數(shù)據(jù)立方體?這主要是和維度的概念一起理解,我們現(xiàn)實(shí)是分三維,x,y,z三個(gè)坐標(biāo)決定的空間。而數(shù)據(jù)庫,可能會(huì)包含很多維度,只是在我們的認(rèn)知中無法想像超越三維的事物,這只是個(gè)概念??梢?,Cube是依賴于維度的。所以在我們建立Cube的時(shí)候,需要理解下面的Dimension是什么。
Dimensions:Cube的維度,每個(gè)Cube依賴哪些維度來做統(tǒng)計(jì),就需要在這里建。雖然在創(chuàng)建立方的時(shí)候會(huì)自動(dòng)幫我們創(chuàng)建維度,但是有時(shí)候他創(chuàng)建的維度并不能達(dá)到我們的目的。所以,我們先建Dimension,再建Cube。
Mining structures:數(shù)據(jù)挖掘用的東西,咱這里就不說了,因?yàn)槲疫€沒用過,只是看了下Webcast的視頻,里面介紹了集成了大量的現(xiàn)有挖掘算法,很方便的可以做出相應(yīng)的分析趨勢。 還是看似厲啊。
OLAP的基本操作
我們已經(jīng)知道OLAP的操作是以查詢——也就是數(shù)據(jù)庫的SELECT操作為主,但是查詢可以很復(fù)雜,比如基于關(guān)系數(shù)據(jù)庫的查詢可以多表關(guān)聯(lián),可以使用COUNT、SUM、AVG等聚合函數(shù)。OLAP正是基于多維模型定義了一些常見的面向分析的操作類型是這些操作顯得更加直觀。
OLAP的多維分析操作包括:鉆取(Drill-down)、上卷(Roll-up)、切片(Slice)、切塊(Dice)以及旋轉(zhuǎn)(Pivot),下面還是以上面的數(shù)據(jù)立方體為例來逐一解釋下:
鉆?。―rill-down):在維的不同層次間的變化,從上層降到下一層,或者說是將匯總數(shù)據(jù)拆分到更細(xì)節(jié)的數(shù)據(jù),比如通過對2010年第二季度的總銷售數(shù)據(jù)進(jìn)行鉆取來查看2010年第二季度4、5、6每個(gè)月的消費(fèi)數(shù)據(jù),如上圖;當(dāng)然也可以鉆取浙江省來查看杭州市、寧波市、溫州市……這些城市的銷售數(shù)據(jù)。
基本分析操作
OLAP允許用戶從多種角度分析多維數(shù)據(jù),主要包括以下五種基本操作:上卷(consolidation/roll-up)、下鉆(drill-down)、切片(slice)、切塊(dice)和旋轉(zhuǎn)(pivot)。
上卷(consolidation/Roll-up)
上卷表示沿著某一維度按照一定的規(guī)則(rule)對數(shù)據(jù)進(jìn)行聚合(aggregation)操作,沿著某一維度,即按照層級關(guān)系從子類維度向父類維度作聚合。
下鉆(Drill-down)
下鉆和上卷正好相反,允許用戶從已聚合的數(shù)據(jù)集中提取出所關(guān)注的細(xì)節(jié)。下圖表示了從“Outdoor-Schutzausrüstung”這個(gè)父類維度中抽取出三個(gè)子類維度的下鉆過程。
切片(Slice)
切片表示通過選擇某個(gè)維度的單一值(value),從OLAP cube中抽取出一個(gè)分片的過程。下圖表示了從原始OLAP cube中抽取出time = 2004分片的過程。
切塊(Dice)
切塊表示通過選擇多個(gè)維度的某些值(或者區(qū)間),從OLAP cube中抽取出子cube的過程。下圖表示了從原始OLAP cube中抽取某個(gè)維度中多值對應(yīng)的子cube的過程。
旋轉(zhuǎn)(pivot)
旋轉(zhuǎn)操作允許用戶通過旋轉(zhuǎn)(rotate)OLAP cube,重新選擇目標(biāo)分析維度,通常表現(xiàn)為交換坐標(biāo)軸操作。在下圖中,原始的OLAP cube的X軸是產(chǎn)品名稱,Y軸是地區(qū)名稱,Z軸是年份;經(jīng)過旋轉(zhuǎn)操作后cube表示了每個(gè)產(chǎn)品在不同年份、不同地區(qū)的統(tǒng)計(jì)情況。
評論
查看更多