聯(lián)機(jī)分析(OLAP)是由關(guān)系數(shù)據(jù)庫(kù)之父E.F.Codd于1993年提出的一種數(shù)據(jù)動(dòng)態(tài)分析模型,它允許以一種稱(chēng)為多維數(shù)據(jù)集的多維結(jié)構(gòu)訪問(wèn)來(lái)自商業(yè)數(shù)據(jù)源的經(jīng)過(guò)聚合和組織整理的數(shù)據(jù)。以此為標(biāo)準(zhǔn),OLAP作為單獨(dú)的一類(lèi)產(chǎn)品同聯(lián)機(jī)事務(wù)處理(OLTP)得以明顯區(qū)分。 有點(diǎn)深?yuàn)W是不是?其實(shí)并不復(fù)雜,OLAP最基本的概念其實(shí)只有三個(gè):多維觀察、數(shù)據(jù)鉆取、CUBE運(yùn)算。 從動(dòng)態(tài)的多維角度分析數(shù)據(jù) 我們?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è)銷(xiāo)售分析模型中的銷(xiāo)售額、毛利等;還有一種為角度特征,比如銷(xiāo)售分析中的時(shí)間周期、產(chǎn)品類(lèi)型、銷(xiāo)售模式、銷(xiāo)售區(qū)域等。前者是被觀察的對(duì)象,OLAP術(shù)語(yǔ)稱(chēng)之為“度量數(shù)據(jù)”,后者為觀察視角,OLAP術(shù)語(yǔ)稱(chēng)之為“維數(shù)據(jù)”。 如果建立這樣一個(gè)模型,我們就可以根據(jù)業(yè)務(wù)需求,從產(chǎn)品類(lèi)型角度去觀察各個(gè)銷(xiāo)售地區(qū)的銷(xiāo)售額數(shù)據(jù)(以產(chǎn)品類(lèi)型和銷(xiāo)售地區(qū)為維、以銷(xiāo)售額為度量);或者我們還可以從銷(xiāo)售模式的角度去觀察各個(gè)銷(xiāo)售地區(qū)的銷(xiāo)售額數(shù)據(jù)(以銷(xiāo)售模式和銷(xiāo)售地區(qū)為維、以銷(xiāo)售額為度量)。 對(duì)數(shù)據(jù)進(jìn)行鉆取,以獲得更為精確的信息 在分析過(guò)程中,我們可能需要在現(xiàn)有數(shù)據(jù)基礎(chǔ)上,將數(shù)據(jù)進(jìn)一步細(xì)化,以獲得更為精確的認(rèn)識(shí)。這就是OLAP中數(shù)據(jù)鉆取的概念。 比如,在銷(xiāo)售分析中,當(dāng)我們以產(chǎn)品類(lèi)型和銷(xiāo)售地區(qū)為維、以銷(xiāo)售額為度量進(jìn)行分析的時(shí)候,可能希望進(jìn)一步觀察某類(lèi)產(chǎn)品的不同銷(xiāo)售模式在各個(gè)銷(xiāo)售地區(qū)的表現(xiàn),這時(shí)我們就可以在產(chǎn)品大類(lèi)這個(gè)數(shù)據(jù)維下面,再加上一個(gè)銷(xiāo)售模式維,從而獲得相應(yīng)的信息。 創(chuàng)建數(shù)據(jù)CUBE 那么,要滿足上述運(yùn)算,需要什么樣的前提呢? 我們可以想像,和報(bào)表不同,OLAP分析所需的原始數(shù)據(jù)量是非常龐大的。一個(gè)分析模型,往往會(huì)涉及數(shù)百萬(wàn)條、數(shù)千萬(wàn)條、甚至更多;而分析模型中包含多個(gè)維數(shù)據(jù),這些維又可以由瀏覽者作任意的提取組合。這樣的結(jié)果就是大量的實(shí)時(shí)運(yùn)算導(dǎo)致的時(shí)間延滯。我們可以設(shè)想,一個(gè)對(duì)于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)該實(shí)現(xiàn)確定,一旦兩者確定下來(lái),那么我們可以對(duì)數(shù)據(jù)進(jìn)行預(yù)先的處理,在正式發(fā)布之前,將數(shù)據(jù)根據(jù)維進(jìn)行最大限度的聚類(lèi)運(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)的這么一個(gè)效果。 補(bǔ)充說(shuō)明 上面所說(shuō)的,是OLAP最基本的概念,除此以外,OLAP通常包括的功能包括數(shù)據(jù)旋轉(zhuǎn)(變換觀察維組合順序)、數(shù)據(jù)切片(過(guò)濾無(wú)關(guān)數(shù)據(jù),對(duì)指定數(shù)據(jù)進(jìn)行重點(diǎn)觀察),以及對(duì)數(shù)據(jù)進(jìn)行跨行列運(yùn)算。 |
|
來(lái)自: 牽牛吃草 > 《待分類(lèi)》