OLAP最基本的概念只有三個(gè):多維觀察、數(shù)據(jù)鉆取、CUBE運(yùn)算。
關(guān)于多維角度:我們?cè)谄綍r(shí)工作中,會(huì)遇到各種問(wèn)題,在分析問(wèn)題的時(shí)候,同樣的現(xiàn)象,我們會(huì)從多個(gè)角度去分析考慮,有時(shí)我們還會(huì)從幾個(gè)角度綜合起來(lái)進(jìn)行分析。這就是OLAP分析最基本的概念——從多個(gè)觀察角度的靈活組合來(lái)觀察數(shù)據(jù),從而發(fā)現(xiàn)數(shù)據(jù)內(nèi)在規(guī)律。
OLAP將數(shù)據(jù)分為兩種特征,一種為表現(xiàn)特征,比如一個(gè)銷售分析模型中的銷售額、毛利等;還有一種為角度特征,比如銷售分析中的時(shí)間周期、產(chǎn)品類型、銷售模式、銷售區(qū)域等。前者是被觀察的對(duì)象,OLAP術(shù)語(yǔ)稱之為“度量數(shù)據(jù)”,后者為觀察視角,OLAP術(shù)語(yǔ)稱之為“維數(shù)據(jù)”。
如果建立這樣一個(gè)模型,我們就可以根據(jù)業(yè)務(wù)需求,從產(chǎn)品類型角度,去觀察各個(gè)銷售地區(qū)的銷售額數(shù)據(jù)(以產(chǎn)品類型和銷售地區(qū)為維、以銷售額為度量);或者我們還可以從銷售模式的角度,去觀察各個(gè)銷售地區(qū)的銷售額數(shù)據(jù)(以銷售模式和銷售地區(qū)為維、以銷售額為度量)。關(guān)于數(shù)據(jù)鉆取:在分析過(guò)程中,我們可能需要在現(xiàn)有數(shù)據(jù)基礎(chǔ)上,將數(shù)據(jù)進(jìn)一步細(xì)化,以獲得更為精確的認(rèn)識(shí)。這就是OLAP中數(shù)據(jù)鉆取的概念。
比如,在銷售分析中,當(dāng)我們以產(chǎn)品類型和銷售地區(qū)為維、以銷售額為度量進(jìn)行分析的時(shí)候,可能希望進(jìn)一步觀察某類產(chǎn)品的不同銷售模式在各個(gè)銷售地區(qū)的表現(xiàn),這時(shí)我們就可以在產(chǎn)品大類這個(gè)數(shù)據(jù)維下面,再加上一個(gè)銷售模式維,從而獲得相應(yīng)的信息。
關(guān)于CUBE運(yùn)算:OLAP分析所需的原始數(shù)據(jù)量是非常龐大的。一個(gè)分析模型,往往會(huì)涉及數(shù)百萬(wàn)、數(shù)千萬(wàn)條數(shù)據(jù),甚至更多;而分析模型中包含多個(gè)維數(shù)據(jù),這些維又可以由瀏覽者作任意的提取組合。這樣的結(jié)果就是大量的實(shí)時(shí)運(yùn)算導(dǎo)致時(shí)間的延滯。
我們可以設(shè)想,一個(gè)1000萬(wàn)條記錄的分析模型,如果一次提取4個(gè)維度進(jìn)行組合分析,那么實(shí)際的運(yùn)算次數(shù)將達(dá)到4的1000次方的數(shù)量。這樣的運(yùn)算量將導(dǎo)致數(shù)十分鐘乃至更長(zhǎng)的等待時(shí)間。如果用戶對(duì)維組合次序進(jìn)行調(diào)整,或增加、或減少某些維度的話,又將是一個(gè)重新的計(jì)算過(guò)程。
從上面的分析中,我們可以得出結(jié)論,如果不能解決OLAP運(yùn)算效率問(wèn)題的話,OLAP將是一個(gè)毫無(wú)實(shí)用價(jià)值的概念。那么,一個(gè)成熟產(chǎn)品是如何解決這個(gè)問(wèn)題的呢?這涉及到OLAP中一個(gè)非常重要的技術(shù)——數(shù)據(jù)CUBE預(yù)運(yùn)算。
一個(gè)OLAP模型中,度量數(shù)據(jù)和維數(shù)據(jù)我們應(yīng)該事先確定,一旦兩者確定下來(lái),我們可以對(duì)數(shù)據(jù)進(jìn)行預(yù)先的處理。在正式發(fā)布之前,將數(shù)據(jù)根據(jù)維進(jìn)行最大限度的聚類運(yùn)算,運(yùn)算中會(huì)考慮到各種維組合情況,運(yùn)算結(jié)果將生成一個(gè)數(shù)據(jù)CUBE,并保存在服務(wù)器上。
這樣,當(dāng)最終用戶在調(diào)閱這個(gè)分析模型的時(shí)候,就可以直接使用這個(gè)CUBE,在此基礎(chǔ)上根據(jù)用戶的維選擇和維組合進(jìn)行復(fù)運(yùn)算,從而達(dá)到實(shí)時(shí)響應(yīng)的效果。