OLAP分類的基本概念
OLAP有多種實現(xiàn)方法,根據(jù)存儲數(shù)據(jù)的方式不同可以分為ROLAP、MOLAP、HOLAP。
ROLAP:表示基于關(guān)系數(shù)據(jù)庫的OLAP實現(xiàn)(Relational OLAP)。以關(guān)系數(shù)據(jù)庫為核心,以關(guān)系型結(jié)構(gòu)進行多維數(shù)據(jù)的表示和存儲。ROLAP將多維數(shù)據(jù)庫的多維結(jié)構(gòu)劃分為兩類表:一類是事實表,用來存儲數(shù)據(jù)和維關(guān)鍵字;另一類是維表,即對每個維至少使用一個表來存放維的層次、成員類別等維的描述信息。維表和事實表通過主關(guān)鍵字和外關(guān)鍵字聯(lián)系在一起,形成了“星型模式”。對于層次復(fù)雜的維,為避免冗余數(shù)據(jù)占用過大的存儲空間,可以使用多個表來描述,這種星型模式的擴展稱為“雪花模式”。ROLAP的最大好處是可以實時地從源數(shù)據(jù)中獲得最新數(shù)據(jù)更新,以保持數(shù)據(jù)實時性,缺陷在于運算效率比較低,用戶等待響應(yīng)時間比較長。
MOLAP:表示基于多維數(shù)據(jù)組織的OLAP實現(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 存儲中的對象必須定期處理以合并這些更改。兩次處理之間的時間將構(gòu)成滯后時間,在此期間,OLAP對象中的數(shù)據(jù)可能無法與當(dāng)前源數(shù)據(jù)相匹配。維護人員可以對 MOLAP 存儲中的對象進行不中斷的增量更新。MOLAP的優(yōu)勢在于由于經(jīng)過了數(shù)據(jù)多維預(yù)處理,分析中數(shù)據(jù)運算效率高,主要的缺陷在于數(shù)據(jù)更新有一定延滯。
HOLAP:表示基于混合數(shù)據(jù)組織的OLAP實現(xiàn)(Hybrid OLAP),用戶可以根據(jù)自己的業(yè)務(wù)需求,選擇哪些模型采用ROLAP,哪些采用MOLAP。一般來說,會將非常用或需要靈活定義的分析使用ROLAP方式,而常用、常規(guī)模型采用MOLAP實現(xiàn)。
Cubes:是數(shù)據(jù)立方體。何為數(shù)據(jù)立方體?這主要是和維度的概念一起理解,我們現(xiàn)實是分三維,x,y,z三個坐標(biāo)決定的空間。而數(shù)據(jù)庫,可能會包含很多維度,只是在我們的認知中無法想像超越三維的事物,這只是個概念。可見,Cube是依賴于維度的。所以在我們建立Cube的時候,需要理解下面的Dimension是什么。
Dimensions:Cube的維度,每個Cube依賴哪些維度來做統(tǒng)計,就需要在這里建。雖然在創(chuàng)建立方的時候會自動幫我們創(chuàng)建維度,但是有時候他創(chuàng)建的維度并不能達到我們的目的。所以,我們先建Dimension,再建Cube。
Mining structures:數(shù)據(jù)挖掘用的東西,咱這里就不說了,因為我還沒用過,只是看了下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ù)立方體為例來逐一解釋下:
鉆取(Drill-down):在維的不同層次間的變化,從上層降到下一層,或者說是將匯總數(shù)據(jù)拆分到更細節(jié)的數(shù)據(jù),比如通過對2010年第二季度的總銷售數(shù)據(jù)進行鉆取來查看2010年第二季度4、5、6每個月的消費數(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ù)進行聚合(aggregation)操作,沿著某一維度,即按照層級關(guān)系從子類維度向父類維度作聚合。
下鉆(Drill-down)
下鉆和上卷正好相反,允許用戶從已聚合的數(shù)據(jù)集中提取出所關(guān)注的細節(jié)。下圖表示了從“Outdoor-Schutzausrüstung”這個父類維度中抽取出三個子類維度的下鉆過程。
切片(Slice)
切片表示通過選擇某個維度的單一值(value),從OLAP cube中抽取出一個分片的過程。下圖表示了從原始OLAP cube中抽取出time = 2004分片的過程。
切塊(Dice)
切塊表示通過選擇多個維度的某些值(或者區(qū)間),從OLAP cube中抽取出子cube的過程。下圖表示了從原始OLAP cube中抽取某個維度中多值對應(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表示了每個產(chǎn)品在不同年份、不同地區(qū)的統(tǒng)計情況。
OLAP技術(shù)路線分類
常見的OLAP系統(tǒng)可以分為以下三類:關(guān)系型聯(lián)機實時分析系統(tǒng)(Relational-OLAP,ROLAP),多維聯(lián)機實時分析系統(tǒng)(Multidimensional-OLAP,MOLAP),混合型聯(lián)機實時分析系統(tǒng)(Hybrid-OLAP,HOLAP)。
1.5.1 關(guān)系型聯(lián)機實時分析(ROLAP)
ROLAP的核心依賴于關(guān)系型數(shù)據(jù)庫,允許用戶使用維度模型進行數(shù)據(jù)分析,將維度值存儲在維度表中,將度量值存儲在事實表中,通過關(guān)系型數(shù)據(jù)庫訪問數(shù)據(jù),使用SQL進行查詢分析。ROLAP的一般使用模式概括如下:根據(jù)用戶的需求,對不同維度進行分析后,將分析數(shù)據(jù)導(dǎo)入到另一張數(shù)據(jù)庫表中。
ROLAP的優(yōu)勢:
(1)處理高基數(shù)列具有更好的擴展性;
(2)擅長處理非聚合類的原始數(shù)據(jù),生態(tài)圈內(nèi)用于原始數(shù)據(jù)入庫的ETL工具眾多,同時比MOLAP入庫速率更高;
(3)由于數(shù)據(jù)存儲在關(guān)系型數(shù)據(jù)庫中,所以支持標(biāo)準(zhǔn)SQL接口,查詢便捷;
ROLAP的劣勢:
(1)根據(jù)OLAP survey(http://www.olapreport.com/survey.htm)在2001-2006年連續(xù)6年的調(diào)研顯示,工業(yè)界普遍認為ROLAP的性能要低于MOLAP。但也有人提出質(zhì)疑,爭議包含兩方面:ROLAP的用戶數(shù)是MOLAP的7倍多,那么抱怨產(chǎn)品性能差的比例自然更高;其他因素的影響,上述調(diào)研報告并沒有將ROLAP產(chǎn)品和MOLAP產(chǎn)品放在同一個維度模型上進行比較,所以該報告結(jié)論并不具有權(quán)威性;
(2)處理已聚合的數(shù)據(jù),需要使用定制的ETL工具,開發(fā)量大且不具有通用性;如果采用原始數(shù)據(jù)入庫,將非常影響查詢性能,如果想要提升查詢性能,需要將已入庫的原始數(shù)據(jù)重新聚合后再導(dǎo)入到新的表中進行查詢分析;
(3)ROLAP的性能很大程度上依賴于使用的關(guān)系型數(shù)據(jù)庫的查詢與緩存性能;同時對于所有分析操作,都依賴于SQL語句,對于重計算類的分析模型,轉(zhuǎn)換后的SQL就會變得復(fù)雜,對分析者的SQL語句的調(diào)優(yōu)要求較高,而在某些無法使用SQL的場景下,ROLAP類產(chǎn)品則變得無能為力。
1.5.2 多維聯(lián)機實時分析(MOLAP)
MOLAP是OLAP的經(jīng)典使用模式,所以經(jīng)常用MOLAP來指代OLAP。MOLAP和ROLAP具有一定的相似性,二者都可以使用維度模型進行數(shù)據(jù)分析,但是MOLAP并不將數(shù)據(jù)存儲在維度表或者事實表中,而是對原始數(shù)據(jù)進行預(yù)計算(比如聚合操作),將計算結(jié)果存儲在OLAP cube中。
MOLAP的優(yōu)勢:
(1)由于MOLAP不采用關(guān)系型數(shù)據(jù)庫進行數(shù)據(jù)存儲,所以必須采用特殊的存儲手段,例如:壓縮存儲、索引(例如位圖索引)以及緩存技術(shù)等,查詢速率更快;
MOLAP的劣勢:
(1)數(shù)據(jù)導(dǎo)入較慢,需要使用定制的ETL入庫工具;
(2)由于沒有維度表和事實表,所以對于更新操作以及明細查詢,效率要比ROLAP低很多。
1.5.3 混合型聯(lián)機實時分析(HOLAP)
HOLAP充分利用了ROLAP與MOLAP的各自優(yōu)勢,從縱向角度,既允許用戶將部分數(shù)據(jù)(比如聚合類數(shù)據(jù))使用MOLAP進行存儲,從而獲得更快的查詢性能;又允許部分數(shù)據(jù)(比如原始數(shù)據(jù))使用ROLAP進行存儲,使用戶能夠查看細粒度數(shù)據(jù)。從橫向角度,使用MOLAP存儲最近較熱的數(shù)據(jù),從而提升查詢性能;而使用ROLAP存儲歷史較冷的數(shù)據(jù)。
目前,商業(yè)類的OLAP產(chǎn)品更偏向于HOLAP,因為大廠既不想丟棄一直使用的關(guān)系型數(shù)據(jù)庫,又想在數(shù)據(jù)分析能力上獲得進一步提升,所以HOLAP類產(chǎn)品近幾年也是百花齊放。
評論
查看更多