什么是olap技術(shù)
聯(lián)機(jī)實(shí)時(shí)分析(OnlineAnalytical Processing, OLAP (/?o?l?p/))技術(shù)是快速響應(yīng)多維分(Multidimensionalanalysis, MDA)的一種解決方案。
首先,解釋下什么是多維分析:多維分析是一種數(shù)據(jù)分析過程,在此過程中,將數(shù)據(jù)分成兩類:維度(dimensions)和度量(metrics/measurements)。維度和度量的概念都出自于圖論(graph theory),維度指能夠描述某個(gè)空間中所有點(diǎn)的最少坐標(biāo)(coordinate)數(shù),即空間基數(shù);度量指的是無向圖中頂點(diǎn)(vertices)間的距離。在多維分析領(lǐng)域,維度一般包括字段值為字符類或者字段基數(shù)值較少且作為約束條件的離散數(shù)值類型;而度量一般包括基數(shù)值較大且可以參與運(yùn)算的數(shù)值類字段,一般也稱為指標(biāo)。
OLAP技術(shù)可以看作是廣義概念上的商業(yè)智能(Business Intelligence, BI)的一部分,而傳統(tǒng)的OLAP分析應(yīng)用通常包含了關(guān)系型數(shù)據(jù)庫(relational database)、商業(yè)報(bào)告(business reporting)以及數(shù)據(jù)挖掘(data mining)等方面。
下面介紹OLAP分析中兩個(gè)重要的基本概念:OLAP cube和維度模型(Dimensional modeling,DM),這兩個(gè)概念也是劃分OLAP類型的重要標(biāo)識(shí)。
1、OLAP cube
OLAP cube在數(shù)據(jù)庫理論(database theory)中的定義為:RDBMS關(guān)系映射的一種抽象描述(An abstract representation of a projection ofan RDBMS relation)。數(shù)學(xué)描述如下:
OLAP cube可以簡(jiǎn)單描述為“多維數(shù)據(jù)集”。cube,我們可以想象為數(shù)據(jù)指標(biāo)根據(jù)多維度封裝成的一個(gè)立方體結(jié)構(gòu)(以三維空間為例,如果維度數(shù)超過3,我們則稱為“Hypercube”),如圖1.1所示,圖中的Time、Products、Cities就是OLAP分析中提取的三個(gè)維度,而這個(gè)立方體封閉區(qū)域所代表的含義就是在這三種維度下,某項(xiàng)指標(biāo)的度量值,根據(jù)上述映射關(guān)系可以描述為:
在OLAP分析中,我們通常也會(huì)對(duì)維度指標(biāo)進(jìn)行分層組織(Level),即一系列的parent-child關(guān)系(Hierarchy);父類維度可以看作是子類維度的聚合。例如:2016年7月是2016年第三季度這個(gè)父類維度的子類維度,同時(shí)2016年第三季度又可以看作是2016年這個(gè)父類維度的子類維度。
2、維度模型
維度模型的概念出自于數(shù)據(jù)倉庫領(lǐng)域,是數(shù)據(jù)倉庫建設(shè)中的一種數(shù)據(jù)建模方法。維度模型主要由事實(shí)表和維度表這兩個(gè)基本要素構(gòu)成。
事實(shí)表是維度模型的基本表,用于存放大度量值,術(shù)語“事實(shí)”代表了一個(gè)度量值。舉一個(gè)例子:查詢某個(gè)客戶在某個(gè)機(jī)構(gòu)下某個(gè)產(chǎn)品合約賬戶的某個(gè)幣種的某個(gè)時(shí)點(diǎn)余額,在各維度值(客戶、產(chǎn)品合約、賬戶、機(jī)構(gòu)、幣種、日期)的交點(diǎn)處就可以得到一個(gè)度量值。維度值的列表定義了事實(shí)表的粒度,同時(shí)又確定了度量值的取值范圍。
事實(shí)表的一行對(duì)應(yīng)一個(gè)度量值,事實(shí)表的所有度量值必須具有相同的粒度。而事實(shí)可能是半加性質(zhì)的,也可能是非加性質(zhì)的,半加性事實(shí)表示度量值可以沿著某些維度由子類維度向父類維度進(jìn)行聚合;非加性事實(shí)則完全不能相加,比如狀態(tài)事實(shí),對(duì)于這種非加性事實(shí),我們只能采用計(jì)數(shù)或者求平均值,或者打印出全部事實(shí)行的方法進(jìn)行分析。
所有事實(shí)表有兩個(gè)或者兩個(gè)以上的外關(guān)鍵字(如圖1.2中FK符號(hào)標(biāo)記的部分),外關(guān)鍵字用于連接到維度表的主關(guān)鍵字。例如,事實(shí)表中的“產(chǎn)品合約關(guān)鍵字”總是匹配產(chǎn)品合約這個(gè)維度表的一個(gè)特定“產(chǎn)品合約關(guān)鍵字”。如果事實(shí)表中的所有關(guān)鍵字都能分別與對(duì)應(yīng)維度表中的主關(guān)鍵字正確匹配,就可以說這些表滿足引用完整性的要求。事實(shí)表要通過與之相連的維度表進(jìn)行存取。
維度表是事實(shí)表不可分割的部分。如圖1.3所示,維度表包含有業(yè)務(wù)的文字描述。在一個(gè)設(shè)計(jì)合理的維度模型中,維度表會(huì)包含許多列或者屬性,我們稱之為維度屬性。對(duì)于維度表來說,包含50到100個(gè)維度屬性的情形并不少見。維度表傾向于將行數(shù)做得相當(dāng)少(通常少于100萬行),而將列數(shù)做得特別大。每個(gè)維度用單一的主關(guān)鍵字(如圖1.2中PK符號(hào)標(biāo)記的部分)進(jìn)行定義,主關(guān)鍵字是確保同一與之相連的任何事實(shí)表之間存在引用完整性的基礎(chǔ)。
維度表是進(jìn)入事實(shí)表的入口。豐富的維度屬性給出了豐富的分析切割能力。維度給用戶提供了使用數(shù)據(jù)倉庫的接口。最好的屬性是文本的和離散的。屬性應(yīng)該是真正的文字而不應(yīng)是一些編碼簡(jiǎn)寫符號(hào)。應(yīng)該通過用更為詳細(xì)的文本屬性取代編碼,力求最大限度地減少編碼在維度表中的使用。
最后簡(jiǎn)單說明下維度表和事實(shí)表的融合。二者的融合也就是“維度模型”,“維度模型”一般采用“星型模式”或者“雪花模式”,如圖1.4所示為“星型模式”,而“雪花模式”可以看作是“星型模式”的拓展,表現(xiàn)為在維度表中,某個(gè)維度屬性可能還存在更細(xì)粒度的屬性描述,即維度表的層級(jí)關(guān)系。
技術(shù)特點(diǎn)
OLAP技術(shù)非常多的特性,概括起來主要有如下幾點(diǎn)特性:OLAP技術(shù)是面向分析人員、管理人員的;OLAP技術(shù)對(duì)數(shù)據(jù)訪問通常是只讀的,并且一次訪問大量數(shù)據(jù);OLAP技術(shù)是面向主題的多維數(shù)據(jù)分析技術(shù)。
OLAP技術(shù)是面向分析人員、管理人員的
區(qū)別于OLTP面向操作人員,OLAP技術(shù)主要面向分析人員、管理人員,他是提供分析人員、管理人員快速又直觀的訪問數(shù)據(jù)的一種途徑。使分析人員、管理人員能直觀的從海量數(shù)據(jù)中獲得有用信息以提供決策依據(jù)。
OLAP技術(shù)對(duì)數(shù)據(jù)訪問通常是只讀的,并且一次訪問大量數(shù)據(jù)。
OLAP技術(shù)主要是針對(duì)海量數(shù)據(jù)的查詢,通常不對(duì)數(shù)據(jù)做修改。這種數(shù)據(jù)訪問有別于OLTP中不斷的對(duì)數(shù)據(jù)進(jìn)行增刪改操作。同時(shí)這種查詢不是簡(jiǎn)單的記錄屬性的檢索,而是為了從海量數(shù)據(jù)中獲取有用信息的針對(duì)大量數(shù)據(jù)的查詢,通常一次需要查詢會(huì)涉及到上百萬條以上數(shù)據(jù)。
OLAP技術(shù)是面向主題的多維數(shù)據(jù)分析技術(shù)。
主題涉及業(yè)務(wù)流程的方方面面,是分析人員、管理人員進(jìn)行決策分析所關(guān)心的角度。分析人員、管理人員使用OLAP技術(shù),正是為了從多個(gè)角度觀察數(shù)據(jù),從不同的主題分析數(shù)據(jù),最終直觀的得到有效的信息。
主要技術(shù)實(shí)現(xiàn)方式
OLAP系統(tǒng)按照其存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)格式可以分為關(guān)系OLAP(RelationalOLAP,簡(jiǎn)稱ROLAP)、多維OLAP(MultidimensionalOLAP,簡(jiǎn)稱MOLAP)和混合型OLAP(HybridOLAP,簡(jiǎn)稱HOLAP)三種類型。
ROLAP:ROLAP將分析用的多維數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫中并根據(jù)應(yīng)用的需要有選擇的定義一批實(shí)視圖作為表也存儲(chǔ)在關(guān)系數(shù)據(jù)庫中。不必要將每一個(gè)SQL查詢都作為實(shí)視圖保存,只定義那些應(yīng)用頻率比較高、計(jì)算工作量比較大的查詢作為實(shí)視圖。對(duì)每個(gè)針對(duì)OLAP服務(wù)器的查詢,優(yōu)先利用已經(jīng)計(jì)算好的實(shí)視圖來生成查詢結(jié)果以提高查詢效率。同時(shí)用作ROLAP存儲(chǔ)器的RDBMS也針對(duì)OLAP作相應(yīng)的優(yōu)化,比如并行存儲(chǔ)、并行查詢、并行數(shù)據(jù)管理、基于成本的查詢優(yōu)化、位圖索引、SQL的OLAP擴(kuò)展(cube,rollup)等等。
MOLAP:MOLAP將OLAP分析所用到的多維數(shù)據(jù)物理上存儲(chǔ)為多維數(shù)組的形式,形成“立方體”的結(jié)構(gòu)。維的屬性值被映射成多維數(shù)組的下標(biāo)值或下標(biāo)的范圍,而總結(jié)數(shù)據(jù)作為多維數(shù)組的值存儲(chǔ)在數(shù)組的單元中。由于MOLAP采用了新的存儲(chǔ)結(jié)構(gòu),從物理層實(shí)現(xiàn)起,因此又稱為物理OLAP(PhysicalOLAP);而ROLAP主要通過一些軟件工具或中間軟件實(shí)現(xiàn),物理層仍采用關(guān)系數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu),因此稱為虛擬OLAP(VirtualOLAP)。
HOLAP:由于MOLAP和ROLAP有著各自的優(yōu)點(diǎn)和缺點(diǎn)(如下表所示),且它們的結(jié)構(gòu)迥然不同,給分析人員設(shè)計(jì)OLAP結(jié)構(gòu)提出了難題。為此一個(gè)新的OLAP結(jié)構(gòu)——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP兩種結(jié)構(gòu)的優(yōu)點(diǎn)結(jié)合起來。迄今為止,對(duì)HOLAP還沒有一個(gè)正式的定義。但很明顯,HOLAP結(jié)構(gòu)不應(yīng)該是MOLAP與ROLAP結(jié)構(gòu)的簡(jiǎn)單組合,而是這兩種結(jié)構(gòu)技術(shù)優(yōu)點(diǎn)的有機(jī)結(jié)合,能滿足用戶各種復(fù)雜的分析請(qǐng)求。
評(píng)論