OLAP研究及其在現(xiàn)代企業(yè)中的應(yīng)用
近年來,隨著信息技術(shù)的高速發(fā)展,OLAP(聯(lián)機(jī)分析處理)技術(shù)逐漸成為人們研究的重點(diǎn),并且眾多OLAP工具產(chǎn)品已經(jīng)走向市場(chǎng)。在國(guó)外,許多大公司紛紛積極參與數(shù)據(jù)倉(cāng)庫(kù)和OLAP系統(tǒng)的開發(fā)和研究,在公司內(nèi)部建立起數(shù)據(jù)倉(cāng)庫(kù),并且利用OLAP以及其他工具進(jìn)行決策支持,在實(shí)踐中取得了很好的效果。在國(guó)內(nèi),OLAP技術(shù)已經(jīng)引起廣大科研技術(shù)人員的興趣,但是企業(yè)界還未對(duì)OLAP技術(shù)給予應(yīng)有的重視。本文結(jié)合煙草公司銷告系統(tǒng)的OLAP應(yīng)用實(shí)例,探討在現(xiàn)代企業(yè)中實(shí)施OLAP的實(shí)用技術(shù)。
2 從OLTP到OLAP
過去幾十年中,數(shù)據(jù)庫(kù)技術(shù)特別是OLTP(在線事務(wù)處理)發(fā)展得比較成熟,它的根本任務(wù)就是及時(shí)地、安全地將當(dāng)前事務(wù)所產(chǎn)生的記錄保存下來。隨著時(shí)間的推移,歷史數(shù)據(jù)不斷堆積,總量不斷變大,人們已經(jīng)不滿足于僅僅處理當(dāng)前數(shù)據(jù),怎樣將日益堆積的數(shù)據(jù)進(jìn)行有效的管理,挖崛其中埋藏的信息寶庫(kù)成了新的問題。數(shù)據(jù)倉(cāng)庫(kù)、OLAP以及數(shù)據(jù)挖掘技術(shù)相繼誕生。OLAP是以數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)為基礎(chǔ)的,其最終數(shù)據(jù)來像與OLTP一樣均來自底層數(shù)據(jù)庫(kù)系統(tǒng),但由于二者面向的用戶不同,OLTP面對(duì)的是操作人員和低層管理人員,OLAP面對(duì)的是決策人員和高層管理人員,因而數(shù)據(jù)的特點(diǎn)與處理也明顯不同(見表1)。
3 OLAP在現(xiàn)代企業(yè)中的應(yīng)用
目前企業(yè)應(yīng)用OLAP方案大體上分為兩類:一是利用諸如Informix的MetaCube、Oracle的Discover以及Express等OLAP工具創(chuàng)建,二是利用開發(fā)工具簡(jiǎn)單的將分析需求多維化處理。這兩種方案各有特色。第一種方案由于采用著名數(shù)據(jù)庫(kù)廠商的從數(shù)據(jù)庫(kù)到數(shù)據(jù)倉(cāng)庫(kù)管理,從一般分析到OLAP成熟產(chǎn)品,所以能夠創(chuàng)建完善的基于數(shù)據(jù)倉(cāng)庫(kù)的DSS系統(tǒng),特別適用于大型數(shù)據(jù)倉(cāng)庫(kù),缺點(diǎn)是不靈活,對(duì)用戶要求較高且由于其英文界面不適合國(guó)內(nèi)用戶操作,另外投資也大;第二種方案功能有限,只能進(jìn)行小型應(yīng)用,但可根據(jù)用戶的實(shí)際情況定制,比較靈活。下面提供的解決方案有機(jī)地結(jié)合了兩者的優(yōu)點(diǎn)。
3.1 一個(gè)銷售系統(tǒng)的結(jié)構(gòu)與工作原理
某省煙草公司梢咨分析系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖1所示。其中:各分公司的OLTP數(shù)據(jù)庫(kù)位于各分公司的PC機(jī)上,DBMS為Oracle,主要用于各分公司的日常事務(wù)處理包括接收下級(jí)子公司的銷咨情況,回款等諸多方面;通過ISDN或撥號(hào)網(wǎng)絡(luò)與總公司的OLTP數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交換。銷售總部OLTP位于總公司的數(shù)據(jù)服務(wù)器上,DBMS為Oracle,主要用于公司銷售總部的日常事務(wù)處理,包括業(yè)績(jī)考核、日常計(jì)劃的指定以及自身的銷售業(yè)務(wù)等。
圖1 煙草公司銷售分析系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)圖
隨著市場(chǎng)的變化和行業(yè)競(jìng)爭(zhēng)的加劇,迫切需要公司決策人員能夠根據(jù)銷咨信息合理調(diào)整銷售計(jì)劃和政策以得到最大的利潤(rùn)回報(bào)。僅通過以往的OLTP分析、報(bào)小工具操縱銷售總部OLTP數(shù)據(jù)庫(kù)大量的歷史數(shù)據(jù)已顯得力不從心,通過建立OLAP應(yīng)用能夠使決策人員充分利用這些數(shù)據(jù)作出科學(xué)的決策。
3.2 OLAP實(shí)施方案
3.2.1 系統(tǒng)設(shè)計(jì)
考慮到用戶想要在原有OLTP基礎(chǔ)上構(gòu)建OLAP應(yīng)用,主要是用來分析銷售情況,所以在選擇產(chǎn)品上應(yīng)該本著適用原則,而不是可以迫求大而全。OLAP引擎選擇Microsoft OLAP Server、Micorsoft OLAP Service是Micorsoft SQL Server 7.0附帶的一個(gè)組件,Microsoft OLAP Server只能提供高端MOLAP產(chǎn)品(如Essbase)的60%-80%的能力,但注冊(cè)和維護(hù)費(fèi)用要低得多。Microsoft OLAP Server可以處理大公司的部門級(jí)需求,也可以處理小型和中型企業(yè)的整個(gè)組織需求。OLAP部分系統(tǒng)結(jié)構(gòu)如圖2所示。 #p#page_title#e#
圖2 煙草公司銷售分析系統(tǒng)OLAP摸塊結(jié)構(gòu)圖
從圖2可以看出,整個(gè)OLAP系統(tǒng)分為四部分:一是銷售總部OLTP基層數(shù)據(jù)庫(kù),存儲(chǔ)全省下級(jí)公司上報(bào)的梢譽(yù)細(xì)節(jié)數(shù)據(jù)。二是數(shù)據(jù)倉(cāng)庫(kù)細(xì)節(jié)數(shù)據(jù),這些致?lián)峭ㄟ^DTS以及專用程序?qū)⒃技?xì)節(jié)數(shù)據(jù)進(jìn)行抽取井進(jìn)行處理,裝入到Microeoft SQL Server 7.0創(chuàng)建的OLAP數(shù)據(jù)庫(kù)中。三是OLAP服務(wù)器是一個(gè)經(jīng)過特殊設(shè)計(jì),用于支持和管理多維致?lián)Y(jié)構(gòu)的高性能、多用戶的數(shù)據(jù)處理引攀。多維數(shù)據(jù)結(jié)構(gòu)是將原始數(shù)據(jù)按維度進(jìn)行盛理后所得的結(jié)果,該結(jié)構(gòu)中的數(shù)據(jù)項(xiàng)的訪問需根據(jù)定義該項(xiàng)的維度成員來訪問。科用Microsoft OLAP Server創(chuàng)建的多維數(shù)據(jù)結(jié)構(gòu)稱為Cube,該多維數(shù)據(jù)結(jié)構(gòu)具有良好的性能能夠靈活、快速地處理原始數(shù)據(jù),并滿足對(duì)各種查詢具有一致的響應(yīng)速度。四是客戶端應(yīng)用程序;通過OLAP服務(wù)器提供的統(tǒng)一的訪問接口,靈活地訪問多維數(shù)據(jù),也可以調(diào)用某些數(shù)據(jù)接口直接從致?lián)?kù)獲取數(shù)據(jù)。該系統(tǒng)利用PivotTables(透視表)服務(wù)通過Excel以及VB對(duì)Cube進(jìn)行訪問,采用OLAP技術(shù),包括drill技術(shù)、導(dǎo)航技術(shù)、旋轉(zhuǎn)技術(shù)、切片技術(shù)和遙歷技術(shù)等,同時(shí)結(jié)合各種靈活、用戶友好的顯示技術(shù),最終將結(jié)果以多維的形式呈現(xiàn)給用戶。
3.2.2 OLAP數(shù)據(jù)庫(kù)設(shè)計(jì)
OLAP數(shù)據(jù)庫(kù)的實(shí)現(xiàn)主要有兩種方式,多維OLAP(MOLAP)和關(guān)系OLAP(ROLAP),多維OLAP利用一個(gè)專有的多維數(shù)據(jù)庫(kù)來存偏OLAP分析所禽的數(shù)據(jù),多維數(shù)握庫(kù)存而言之就是以多維方式組織數(shù)據(jù),以多維方式存偏數(shù)據(jù)。在MOLAP結(jié)構(gòu)中分散在企業(yè)內(nèi)部各OLTP數(shù)據(jù)庫(kù)中的經(jīng)過提取、清潔、轉(zhuǎn)換等步毅后提交給多維數(shù)據(jù)庫(kù)。盡管MOLAP具有占用存儲(chǔ)空間較小、數(shù)據(jù)綜合、訪向速度快的優(yōu)點(diǎn),但是數(shù)據(jù)組織,操作起來比較復(fù)雜,所以該系統(tǒng)采用ROLAP方式組織數(shù)據(jù)。我們采用橄行的星型模式(Star Scheme),星型模式是基于關(guān)系型數(shù)據(jù)庫(kù),面向OLAP的一種多維化的數(shù)據(jù)組織方式。關(guān)系數(shù)據(jù)庫(kù)將多維結(jié)構(gòu)劃分為兩類表:一類是事實(shí)表,用來存儲(chǔ)事實(shí)的度量值和各維的碼值;另一類是維表,對(duì)于每一維來說,至少有一個(gè)表用來保存該維的元數(shù)據(jù),即維的描述信息。在相關(guān)事實(shí)表中,這些值會(huì)衍生出該維的列。事實(shí)表是通過每一維的碼值同維表聯(lián)系在一起的,這種結(jié)構(gòu)稱之為“星型模式.。有時(shí),對(duì)于內(nèi)部層次復(fù)雜的維,可以用多張表來描述一個(gè)維。比如,產(chǎn)品維可以進(jìn)一步劃分為類型表、顏色表、商標(biāo)表等,這樣,在“星”的角上又出現(xiàn)了分支。這種變種的墾型模式被稱為“雪片模式”(Snow Flake Scheme)。對(duì)于層次復(fù)雜、成員較多的維采用多張表來描述,而對(duì)于較為簡(jiǎn)單的維可以用一張表來描述。本系統(tǒng)“雪片摸式”如圖3所示。該系統(tǒng)維表由時(shí)間維、產(chǎn)品維、客戶維、銷售商維構(gòu)成,事實(shí)表中存儲(chǔ)維碼和由各維碼確定的銷咨數(shù)據(jù)。其中產(chǎn)品維可以分為產(chǎn)品地區(qū)(廠家)、產(chǎn)品名稱兩個(gè)表描述,銷售商、客戶分別由相應(yīng)的地區(qū)、縣市、鑰售商(客戶)名稱三個(gè)表描述,時(shí)間維由單表描述,各主從表間通過主鍵連接。
3.2.3 多維立方體的創(chuàng)建和維護(hù)
以ROLAP方式建立OLAP效據(jù)庫(kù)后,使用Microsoft OLAP Service在Microsoft OLAP Server上創(chuàng)建多維立方體cube。使用Microsoft OLAP Service還有一個(gè)優(yōu)點(diǎn),可以以多維的方式對(duì)cube進(jìn)行存儲(chǔ),即在OLAP Server上存偏事實(shí)表基本數(shù)據(jù)和匯總。這樣可以提商系統(tǒng)晌應(yīng)速度。OLAP Server可以進(jìn)行預(yù)匯總,在數(shù)據(jù)庫(kù)中存儲(chǔ)永久的匯總數(shù)據(jù),而不是在創(chuàng)建MD緩沖立方體時(shí)任意產(chǎn)生匯總數(shù)據(jù),這樣可以提高性能效益。
創(chuàng)建的多維立方體只反映當(dāng)時(shí)的數(shù)據(jù)結(jié)構(gòu),當(dāng)用戶向OLAP數(shù)據(jù)庫(kù)中添加新采集的數(shù)據(jù)后需要進(jìn)行更新,僅僅添加事實(shí)表數(shù)據(jù)時(shí)界用增量更新以節(jié)省時(shí)間,當(dāng)維表增加成員時(shí)采用刷新處理,當(dāng)對(duì)維結(jié)構(gòu)進(jìn)行改變時(shí)書進(jìn)行完全處理。數(shù)據(jù)的備份可利用Microsoft SQL Server 7.0進(jìn)行。 #p#page_title#e#
3.2.4 數(shù)據(jù)的采集和可視化呈現(xiàn)
數(shù)據(jù)采集是OLAP關(guān)性所在,在數(shù)據(jù)采集實(shí)現(xiàn)中必須重視兩個(gè)問題:一是采集的周期和時(shí)機(jī)。二是凈化、集成數(shù)據(jù),生成純凈、統(tǒng)一的企業(yè)數(shù)據(jù)視圖。數(shù)據(jù)采集的初始可以采用DTS服務(wù)從OLTP數(shù)據(jù)庫(kù)中抽取,維護(hù)時(shí)采用前端程序。數(shù)據(jù)的采集包括新維成員的添加和事實(shí)數(shù)據(jù)的抽取,本系統(tǒng)在銷咨總部OLTP數(shù)據(jù)庫(kù)中設(shè)置了臨時(shí)區(qū),將新的數(shù)據(jù)暫存,OLAP決策人員在需要時(shí)將這些數(shù)據(jù)提取,并清空臨時(shí)區(qū)以節(jié)省資源。填充新數(shù)據(jù)后OLAP Server中的多維立方體Cube需要進(jìn)行維護(hù)。
直觀、多維的數(shù)據(jù)呈現(xiàn)是OLAP類工具所必不可少的特征之一。在普通的ROLAP解決方案中,用戶對(duì)致?lián)亩嗑S呈現(xiàn)要求采用標(biāo)準(zhǔn)SQL語句進(jìn)行解釋、組織,事實(shí)的提取需要通過對(duì)維表和事實(shí)表的連接操作完成,因而響應(yīng)速度較慢,而且對(duì)多維請(qǐng)求的解釋比較復(fù)雜。采用Mioroeoft OLAP Service創(chuàng)建的Cube可以通過OLE DB很方便地連接,并使用客戶端程序粗過ADO/MD對(duì)象進(jìn)行訪問。用戶對(duì)Cube的多維訪問可以采用MDX語句很容易地進(jìn)行,MDX語句是專門用于對(duì)多維對(duì)象進(jìn)行訪間的語言它沿襲了SQL語言的形式并對(duì)其進(jìn)行了擴(kuò)展。另外用戶可以使用Excel輔助分析,對(duì)數(shù)據(jù)進(jìn)行切片、切塊、上鉆、下鉆、旋轉(zhuǎn)等操作,并可以通過圖形、報(bào)表的形式直觀地呈現(xiàn)。
4 結(jié)束語
本文所提出的OLAP解決方案采用了OLAP引擎,并根據(jù)用戶需要定制數(shù)據(jù)抽取、分析程序,該方案完全能夠滿足企業(yè)的OLAP要求,由于可以進(jìn)行二次開發(fā),可以滿足用戶的特殊要求,并具有靈活、投資小的優(yōu)點(diǎn),非常適合國(guó)內(nèi)企業(yè),具有一定的推廣價(jià)值。