摘 要: 在介紹Oracle OLAP和BI Beans體系結構的基礎上,結合一個決策支持系統的實例,論述了利用BI Beans開發企業OLAP應用系統的方法和基本過程。
關鍵詞: 聯機分析處理系統 商務智能組件 Oracle BI Beans 決策支持系統
隨著信息技術的發展和企業信息化的不斷推進,許多企業建立了自己的信息系統。大部分信息系統是建立在傳統數據庫系統上的事務系統,一般稱為聯機事務處理系統(OLTP)。OLTP用來處理企業相關事務信息,例如:生產記錄、定貨記錄、銷售記錄等。而在企業管理層的決策中,需要的是對這些事務系統的數據進行統計、加工后的分析。例如,對一個時期銷售情況的統計分析和去年同一時期進行比較,尋找最熱銷的產品等。這就需要建立聯機分析處理系統(OLAP)。
聯機分析處理的概念最早是由關系數據庫之父E.F.Codd于1993年提出的。隨著傳統的關系數據庫應用系統的不斷擴大以及數據量的增多,利用SQL對大數據庫進行簡單查詢已不能滿足用戶分析的需求。用戶的決策分析需要對關系數據庫進行大量計算才能得到結果。因此Codd提出了多維數據庫和多維分析的概念,即OLAP。
和OLTP相比較,OLAP有其自身的特點:
(1)OLAP一般是面向“知識工人”的,用于數據分析;
(2)OLAP一般涉及歷史數據,是對歷史數據的匯總和聚集基礎上的分析;
(3)OLAP不但涉及本部門的數據,還會涉及企業或組織外部的相關數據;
(4)OLAP一般是只讀訪問的,和OLTP不同,它的訪問可能是無計劃的,而一次訪問可能涉及一個復雜耗時的查詢;
(5)OLAP一般基于多維的數據倉庫進行。
隨著企業對OLAP系統的需求不斷增大,OLAP應用系統的開發已成為目前信息系統開發的重點和熱點。OLAP應用系統應該能提供給用戶一個支持多維數據立方的圖形化界面,能讓用戶針對數據立方進行各類分析活動。
各大數據庫管理系統軟件提供商陸續提供了基于自己數據庫管理系統的OLAP服務軟件。本文將基于Oracle公司的OLAP產品,介紹其基本體系結構以及利用Oracle 的BI Beans開發OLAP應用系統的基本方法和過程,并且以某石油企業的決策支持系統的開發為背景提供一個開發實例。
1 Oracle OLAP體系結構以及開發工具
作為一個重要的關系型數據庫軟件提供商,Oracle公司的OLAP產品是基于其數據庫系統9i的。Oracle公司的9i數據庫系統包含了OLAP、數據倉庫、數據挖掘等多個服務,提供了一個集成的管理平臺和服務平臺。
在數據倉庫中,星形模式是建立高性能查詢數據結構最為普遍的方法。它的邏輯模式不同于關系型數據庫的關系模式,而是使用事實表和維表來表示多維數據。由于數據的多維性,一個事實表和多個維表相關聯,類似于星型,因此,這種邏輯模式稱作星型模式。星形模式有一個變體叫雪花模式,它實際上是一個具有規范化維表的星形模式。
Oracle為OLAP應用系統的開發提供了二個層次的工具。一個是Java OLAP API,它提供了對OLAP所有功能最底層的操作支持,具有很強的功能和很好的柔性。另一個是商務智能組件BI Beans(Business Intelligence Beans)。通過BI Beans,開發人員能夠快速地開發出OLAP應用程序。和OLAP API相類似,BI Beans也是基于Java平臺的,但具有很好的封裝,它提供了一般OLAP應用系統常用的功能,其層次結構如圖1所示。

BI Beans分成表示Bean、OLAP Bean和目錄服務的三大類。表示Bean分成表(Table)、交叉表(Crosstab)和圖(Graph)三個類別。表示Bean用來向用戶提供OLAP查詢結果,可以用來表示多維的數據立方,可以進行上卷、下鉆、旋轉等操作。對于一些關鍵數據,可以用不同的顏色來著重顯示。此外,還提供了二維、三維的柱裝、條形、點、餅圖等形式,形象化地展示數據。
表示層Bean可以分成Java客戶端和Web端二種形式,分別對應于客戶/服務器應用(C/S)和瀏覽器/服務器應用(B/S)二種軟件結構。
OLAP Bean用來建立用戶查詢感興趣的查詢數據(Query)。通過計算構建器,用戶可以自定義對于事實數據的計算方式,用來分析數據。例如,對銷售數據的移動平均計算、最大最小計算、百分比計算等。OLAP Bean還包括對OLAP服務器連接的支持。
目錄服務類BI Beans是對用戶自己建立的查詢立方的持久化管理。Oracle為查詢結果提供BI Bean目錄(BI Bean Catalog)服務。用戶自己定義的查詢結果可以存放在服務器的BI Bean目錄下。Oracle BI Bean目錄是存放在Oracle數據庫中的,可以為所有能訪問數據庫的人員共享。通過權限設置,可以限定查詢被訪問的人的范圍。
2 用BI Beans開發OLAP應用
由于BI Beans很好地封裝了數據的顯示和管理功能,因此,利用BI Beans能快速地開發出OLAP應用而不涉及OLAP底層的細節。圖2是一個典型的利用BI Beans開發的OLAP應用系統的結構。
在圖2中,BI目錄(BI Catalog)用來存放用戶查詢,實際是存在于Oracle 9i數據庫中。在數據庫中,用戶的查詢以XML形式存放。

用戶的界面可以分成二種。一種是基于Java的應用程序,也就是所謂的胖客戶應用。該應用是基于客戶/服務器(C/S)模式的。另一種是基于JSP的BI應用,是瘦客戶應用,基于瀏覽器/服務器(B/S)模式。基于JSP應用客戶端只需要一個瀏覽器即可。
用戶的查詢可以以交叉表(Cross Table)、圖形(Graph)及表格(Table)的形式顯示。在JSP應用中,BI Beans提供的用戶圖形化界面是PNG格式的圖片而不是Applet應用,是一種純HTML的應用形式。
由于目前B/S模式的應用是熱點,所以在本文后面給出的實際例子中,所建立的某石油天然氣公司決策支持系統也是基于B/S模式的。因此,下面討論BI Beans就以B/S模式為主。基于C/S結構的BI Beans開發類似,可以參考相關文檔。
BI Beans的JSP應用可以支持各類J2EE服務器。Oracle 9i JDeveloper支持直接向BEA Weblogic和Oracle 9iAS服務器的發布功能。發布時不需要自己寫配置文件,利用內置的對話框即可完成。
圖2中應用的J2EE服務器是Oracle公司的OC4J(Oracle9iAS Containers for J2EE)。它可以獨立運行,也可以包含在Oracle 9iAS中運行。如果獨立運行,只需要下載一個OC4J程序包即可。OC4J服務器是一個純Java的服務,可以運行在各類平臺,需要Jdk 1.3的支持。
在Oracle 9i Jdeveloper中已經包含了OC4J獨立運行版本。可以在IDE開發環境中進行調試。
3 開發實例
本實例涉及的OLAP系統是某石油天然氣公司決策支持系統的一個重要組成部分。它需要對公司的生產計劃、實際產量、生產費用、庫存等數據提供一個OLAP查詢系統。
整個OLAP應用核心是DSS數據倉庫。該數據倉庫的數據來源是公司生產管理信息系統和實時數據庫系統。原始數據通過數據抽取、轉換和裝載(ETL)模塊從OLTP應用系統以及實時數據庫裝載到數據倉庫中。OLAP查詢針對數據倉庫的數據進行。
數據倉庫建立后,可以利用Jdeveloper 9i提供的查詢構建器建立查詢。查詢是構建BI Beans應用的一個基礎。在構建查詢時,需要確定顯示對象是交叉表、圖形還是普通表格,然后選擇需要顯示的事實數據以及維數據,最后將該查詢保存到BI Catalog中。
查詢建立后,建立相關的JSP頁面。由于BI Beans已經封裝了圖形顯示、OLAP數據訪問、人機操作響應等細節,因此,JSP網頁很簡單。下面是一個典型的JSP頁面代碼:



其中,<orabi:Presentation />標記就是控制所要顯示查詢的。本例中查詢的名稱是plan(location=″plan″)。該查詢保存在BI目錄中。
<orabi:Render />標記是控制顯示的。由于用戶要在界面上進行操作(上卷、下鉆、統計等),因此,顯示界面都在一個Form中,用戶對界面的操作轉化成HTTP GET請求,由BI Beans自動處理這個GET請求。Render標記可以顯示各類元素。通過id屬性與前面定義的Bean進行關聯。
4 結 論
由于技術的發展,企業得到海量信息的能力已經越來越強,但對信息的分析、理解以及再利用的能力卻沒有實質性的提高。針對這種情況,利用Oracle 的BI Beans結合數據倉庫,為企業處理海量信息、建立有效的決策支持系統提供了一種快捷的方法。通過OLAP在不同領域中的應用,能幫助企業決策者面對商業環境的快速變化作出敏捷的反應和更科學、更合理的商業決策。它有助于提高企業的運作效率,建立有利的客戶關系,增加產品的銷售,幫助企業從現有的知本中提煉更多的價值。
用BI Beans開發應用是比較耗內存的。如果發布到應用服務器OC4J上,需要提高應用服務器的默認最大內存,否則會引起內存溢出的錯誤。例如,對于獨立的OC4J服務器,默認的啟動命令是:“start java -jar oc4j.jar”,需要修改成:“start java -Xmx256M -jar oc4j.jar”,以提高最大內存。特別是在應用發布后,最好重新啟動一次OC4J服務。服務器至少配置512MB內存,否則運行速度會很慢。不過,隨著硬件價格的不斷降低,這個問題也變得容易解決了。
參考文獻
1 Jiawei H,Kamber M.數據挖掘:概念與技術.北京:機械工業出版社,2001
2 Inmon W H.數據倉庫.北京:機械工業出版社,2000
3 Oracle9i Business Intelligence Beans,An Oracle White Paper,http://otn.oracle.com,2002,9
4 Oracle9i OLAP:A Scalable Web-Based Business Intelligence Platform An Oracle White Paper,http://otn.oracle.com,2001,4
