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