蒲曉湘,唐 佳
(1.重慶電力高等??茖W校,重慶 400053;2.重慶市燃氣集團 江北分公司,重慶 400020)
隨著數(shù)據(jù)庫技術(shù)的發(fā)展與廣泛應用,越來越多的大型零售企業(yè)建立起了自己龐大的數(shù)據(jù)庫,存儲大量的業(yè)務數(shù)據(jù)。如何在這些數(shù)據(jù)中捕獲潛在有用的信息用于決策,是現(xiàn)代企業(yè)決策者們面臨的最大問題。傳統(tǒng)的聯(lián)機事務處理系統(tǒng)(OLTP)已不能滿足用戶對海量數(shù)據(jù)進行深度分析的需求。數(shù)據(jù)倉庫技術(shù)和OLAP技術(shù)應運而生。
數(shù)據(jù)倉庫(DW)技術(shù)是以數(shù)據(jù)庫為基礎(chǔ)、面向主題的數(shù)據(jù)管理技術(shù)。傳統(tǒng)數(shù)據(jù)庫中存放的是操作型數(shù)據(jù),而數(shù)據(jù)倉庫中存放的則是分析型數(shù)據(jù)。聯(lián)機分析處理(Online Analytical Processing,OLAP)技術(shù)是面向主題的多維數(shù)據(jù)分析技術(shù),是數(shù)據(jù)倉庫系統(tǒng)的典型應用。數(shù)據(jù)倉庫側(cè)重于存儲和管理其中的數(shù)據(jù),而OLAP則側(cè)重于數(shù)據(jù)倉庫中的數(shù)據(jù)分析,并將其轉(zhuǎn)換成決策信息。
對于現(xiàn)代零售業(yè)的決策者來說,銷售常常是關(guān)注的焦點,因此對銷售數(shù)據(jù)的分析尤為重要。本文主要以銷售主題為例,分析如何構(gòu)建企業(yè)的OLAP系統(tǒng)。
1.1.1 主題的確定
所謂主題,即對應某一分析領(lǐng)域的分析對象。每一個分析主題形成一個OLAP應用。一般情況,零售企業(yè)關(guān)注的焦點集中在商品銷售情況、商品庫存情況、供應商、客戶信息等方面,這些都可以作為OLAP分析的主題。
1.1.2 維及維層次的確定
維是人們觀察數(shù)據(jù)的特定角度,是考慮問題時的一類屬性,這些屬性的集合構(gòu)成一個維。如銷售主題的維可選取時間維、商品維、顧客維、供貨商維等。
維的層次描述了同一維的不同聚合程度,與粒度層次的劃分有關(guān)。粒度是指數(shù)據(jù)倉庫中數(shù)據(jù)單元的詳細程度和級別,數(shù)據(jù)越詳細,粒度越小,級別就越低。例如,每個銷售時間的細節(jié)數(shù)據(jù),可按天、月、季度、年4個級別進行匯總,因此銷售時間維就有天、月、季度、年4個層次。
維的成員是維的一個取值,是數(shù)據(jù)項在某維中位置的描述。如“某年某月某日”是在時間維上的描述。
進行數(shù)據(jù)倉庫系統(tǒng)設計,首先要對系統(tǒng)中可能存儲的數(shù)據(jù)量進行分析,然后估算所需的存儲空間,確定數(shù)據(jù)倉庫的數(shù)量級,并以此作為選擇軟硬件環(huán)境的參數(shù)。每一個表的數(shù)據(jù)量估算公式為:
表數(shù)據(jù)量 =∑(表記錄的大小+主關(guān)鍵字大小)×單位時間記錄的數(shù)量×存儲因子×冗余因子
對于各個分析主題來說,事實表數(shù)據(jù)是最大的部分,其它表的數(shù)據(jù)量級較小。因此,可用各個主題的事實表的數(shù)據(jù)量之和來估算數(shù)據(jù)倉庫的存儲空間。例如,對于銷售主題中的事實表,若每條記錄大約有70字節(jié),主關(guān)鍵字為40字節(jié),每天的記錄數(shù)約為3000條,存儲5年時間,冗余因子取2,那么按上式計算,銷售事實表中的數(shù)據(jù)量大約為1.2G字節(jié)。
1.3.1 硬件選擇
由于大容量復雜數(shù)據(jù)存儲和迅速查詢的要求,數(shù)據(jù)倉庫的服務器系統(tǒng)應有較快的響應速度、高性能的CPU、良好的I/O接口、大容量的聯(lián)機硬盤及內(nèi)存等,同時也應配海量外部存儲設備,作數(shù)據(jù)轉(zhuǎn)儲使用。為了使數(shù)據(jù)倉庫系統(tǒng)的性能達到最佳,應力求做到各個硬件部分的平衡。
1.3.2 軟件選擇
數(shù)據(jù)倉庫系統(tǒng)的軟件包括數(shù)據(jù)倉庫的數(shù)據(jù)庫管理系統(tǒng)(DBMS)、OLAP分析服務、數(shù)據(jù)轉(zhuǎn)換工具和客戶端使用的報表工具等。目前OLAP軟件提供商有 Oracle Express、IBM DB2 OLAP Server、Microsoft Analysis Services等,其中Microsoft SQL Server中的Analysis Services的可擴展性、性能表現(xiàn)、安全性、易管理性等方面較其它OLAP產(chǎn)品更具優(yōu)越性。
綜合以上分析,本文采用Microsoft SQL Server及Analysis Services作為數(shù)據(jù)倉庫和OLAP數(shù)據(jù)庫的開發(fā)軟件。SQL Server中的數(shù)據(jù)轉(zhuǎn)換服務(DTS)是數(shù)據(jù)轉(zhuǎn)換的理想工具。Analysis Services服務器與其它微軟的工具和SQL Server緊密結(jié)合,是執(zhí)行OLAP分析操作的一個很好平臺,可用它作為OLAP分析服務器。微軟的數(shù)據(jù)透視表服務(PivotTable Service,PTS)是一個功能強大的數(shù)據(jù)顯示工具,能支持基于Web的可視化數(shù)據(jù)分析,可用它作為前端展現(xiàn)工具。因此,整個銷售OLAP系統(tǒng)就構(gòu)成了三層的客戶/服務器結(jié)構(gòu)。如圖1所示。
圖1 銷售OLAP系統(tǒng)總體結(jié)構(gòu)
數(shù)據(jù)倉庫中一般要建立系統(tǒng)信息表、原始單據(jù)表、數(shù)據(jù)轉(zhuǎn)換對照表及基礎(chǔ)數(shù)據(jù)表等。各表的定義是在SQL Server中的企業(yè)管理器中進行。首先要在注冊的SQL Server服務器中新創(chuàng)建數(shù)據(jù)倉庫,然后新建和各個主題相關(guān)的表,這也是為OLAP立方創(chuàng)建事實表和維度表。一個主題對應一個事實表,一個維度對應一個維表。如銷售事實表(銷售日期,部門柜組編碼,供貨單位編碼,商品編碼,銷售數(shù)量,銷售金額)。
實踐證明,不良的數(shù)據(jù)類型會影響SQL Server的運行速度,消耗存儲空間。因此,各個表以及表中的字段應盡量使用格式短的數(shù)據(jù)類型,盡可能地貼近原始格式。如時間字段最好用datetime或smalldatetime;貨幣型字段最好選用money型等。
數(shù)據(jù)倉庫中各個表定義好后,還需為各個表創(chuàng)建索引。索引是優(yōu)化數(shù)據(jù)倉庫性能的一個重要方面。
數(shù)據(jù)倉庫中的源數(shù)據(jù)主要來自企業(yè)的OLTP業(yè)務數(shù)據(jù)庫。當數(shù)據(jù)倉庫中的表建好以后,接下來就是以統(tǒng)一定義的格式從各個數(shù)據(jù)庫系統(tǒng)中將數(shù)據(jù)抽取出來,經(jīng)過清洗和聚合后,放在SQL Server中新建的目的表中。SQL Server中可以自定義創(chuàng)建數(shù)據(jù)轉(zhuǎn)換包,即DTS包,也可以使用DTS向?qū)?,包保存在SQL Server Meta Data Services中。
數(shù)據(jù)倉庫的模型主要包括概念模型、邏輯模型和物理模型。
概念模型的任務是給出數(shù)據(jù)倉庫的大概輪廓,包括系統(tǒng)邊界的界定、確定分析的主題域及其內(nèi)容。
數(shù)據(jù)倉庫中的邏輯模型就是關(guān)系模型,主要任務是為每一個主題定義關(guān)系模式。邏輯模型描述了數(shù)據(jù)倉庫的主題的邏輯實現(xiàn),是連接概念模型和物理模型的橋梁。各個主題的關(guān)系圖是在SQL Server企業(yè)管理器中建立,生成星型或雪花模型,如圖2所示。
物理模型是依據(jù)邏輯模型而創(chuàng)建,確定模型的鍵碼屬性和模型的物理特性。物理模型就是由一系列具體的表所構(gòu)成,其中主要的就是事實表、維表以及索引的建立。
圖2 銷售主題雪花結(jié)構(gòu)
構(gòu)建OLAP多維數(shù)據(jù)庫,最關(guān)鍵的步驟就是多維立方和維的類型設計。維度是立方的組成部分,分為常規(guī)維、虛擬維和父子維三大類。立方有常規(guī)立方、虛擬立方、鏈接立方和本地立方之分。通常創(chuàng)建的立方就屬于常規(guī)立方,其它類型的立方根據(jù)需要來選擇。例如,若需要在本地服務器上定義和存儲另一臺服務器上的某個立方,就要創(chuàng)建鏈接立方。
多維立方體的創(chuàng)建是基于數(shù)據(jù)倉庫中所建立的星型或雪花模型,在Analysis Manager中進行,數(shù)據(jù)源選擇SQL Server中已經(jīng)創(chuàng)建的數(shù)據(jù)倉庫。
立方體建好以后,在Analysis Manager中就可以瀏覽其中的數(shù)據(jù)并進行多維分析了,包括切片、切塊、鉆取和旋轉(zhuǎn)等操作。
銷售OLAP系統(tǒng)前端分析結(jié)果的展示可利用Analysis Services客戶端的PTS來實現(xiàn),它支持在客戶端操作OLAP數(shù)據(jù),如圖3所示。用戶還可用Visual Basic,利用多維擴展語言(MDX)、ADO MD等來開發(fā)定制的OLAP前端應用程序。
信息技術(shù)的發(fā)展,使得數(shù)據(jù)倉庫技術(shù)和OLAP技術(shù)在現(xiàn)代企業(yè)決策分析系統(tǒng)中發(fā)揮著越來越廣泛的作用。本文就大型零售企業(yè)的銷售主題,基于微軟的SQL Server及Analysis Services軟件平臺,提出了如何設計OLAP系統(tǒng)的一般流程。但企業(yè)OLAP系統(tǒng)的實際建設,是一項復雜的系統(tǒng)工程,需要經(jīng)過反復的調(diào)研和不斷的完善,才能更有效的用于數(shù)據(jù)的分析和挖掘,從而提高企業(yè)的決策力和競爭力。
圖3 數(shù)據(jù)的多維分析
[1] 高洪深.決策支持系統(tǒng)(DSS)理論與方法(第四版)[M].北京:清華大學出版社,2009.
[2] 鄭悅林,鄭霞忠,鄧康林.基于SQL Server 2005的超市商業(yè)智能模型[J].中國管理信息化,2008,(4).
[3] 蒲曉湘.基于MS Analysis Services的聯(lián)機分析處理技術(shù)應用研究[D].重慶:重慶大學,2004.
[4] 林杰斌,劉明德,陳湘.數(shù)據(jù)挖掘與OLAP理論與務實[M].北京:清華大學出版社,2002.
[5] 王征,李家興.SQL Server 2005實用教程[M].北京:清華大學出版社,2006.