[摘要] 本文主要講述了對于特定項目中數據倉庫設計的方法,重點描述邏輯設計和物理設計,同時本文也對這個項目中的總體架構及其各個組建的進行了簡單描述。
[關鍵詞] 數據倉庫商業智能系統架構
一、引言
數據倉庫在整個商業智能項目中起到核心的作用,就好比人的大腦,如果人沒有聰明的,思維清晰的大腦,不可能做出明智的決定一樣。由于數據倉庫的設計決定著數據倉庫是否能滿足業務的需要和業務擴展的需要,所以數據倉庫的設計成為整個商業智能項目中最為關鍵的過程。本文根據某制造型企業的信息化建設項目,論述項目實施過程中數據倉庫的設計過程和需要注意的一些問題。
信息技術的高速發展為企業提高自身競爭力帶來了巨大空間:信息技術不但使企業獲取需要的信息,而且也促進企業對信息的再利用,以此營造企業的競爭優勢。而商業智能是將企業運作中涉及到的數據有效的轉化為信息、知識和智慧,通過適當的方式展現給決策者,以幫助企業提高決策能力和運營能力以增強企業核心競爭力。正是在這個背景下,企業決定實施商務智能。
二、商業智能項目概述
公司選用BusinessObject XI軟件作為展現工具,數據倉庫選用oracle 9i企業版(9.2.0.6),總體架構如下:
下面就以上的架構圖進行簡要說明:
1.源服務器。主要為企業內現有正在使用的業務系統,為數據倉庫的主要的數據來源。包括BAAN的ERP系統,電子商務平臺,SLIM4物流系統,包裝系統,還有一些外部數據源。例如EXCEL表。
2.DW服務器(dataware)。DW服務器存儲數據倉庫的相關數據。根據數據特性的不同。有可以劃分到不同的區域。采用oracle 9i企業版。操作系統采用HP UNIX。用關系表存放數據。
3.DI服務器(data intergrator)。整個的etl(轉換,清洗,加載)功能可以劃分為調度和具體實現。DI服務器完成etl調度功能以及一部分具體的實現。采用DI XI。操作系統采用Window 2000 server。
主要的功能為運行etl任務。
DI可以通過作業方式管理ETL工作,定時執行預定義的ETL作業。DI自帶ETL調度服務。
我們可以DI服務器上設定etl各個任務運行的時間、運行的周期以及執行次序。然后根據可以預先設定的etl各個任務的流程、運行的時間、運行的周期以及執行次序,定期的自動地運行etl任務。
DI的各種配置信息都放在DI儲備庫中。DI儲備庫是一套數據,包括了工作流信息等。可以存放在某個關系型數據庫上。
4.BO服務器(business objects)。BO服務器提供查詢和分析服務。它從數據倉庫中獲取報表分析所需的數據,從為BO儲備庫中獲取相關的。為不同的業務分析人員提供分析報表和多維分析功能。同時擔負著用戶權限管理、登錄認證、文檔管理等功能。采用BO XI 企業版。操作系統采用Window 2000 server。
BO的各種配置信息都放在BO儲備庫中。BO儲備庫是一套數據,包括了語義層、報表、用戶、權限信息等??梢源娣旁谀硞€關系型數據庫上。
5.Web服務器。提供b/s結構的查看分析報表功能。由web服務器和java應用服務器構成。web服務器采用Aphace,提供了通過網頁訪問本系統的方式。
java應用服務器采用Tomcat,提供jsp處理能力。
在web服務器和java應用服務器部署有bo的前臺java應用程序。
6.DI管理客戶端。部署了DI的客戶端程序:包括Data Integrator Designer、Repository Manager、Server Manager、Web Administrator等。
7.BO應用客戶端。部署了DI的客戶端程序:包括Designer、Desktop Intelligence等。
8.IE客戶端。通過IE查看分析報表的客戶端。
三、數據倉庫的設計
1.數據倉庫邏輯設計。本系統按ETL數據轉換層次把數據倉庫邏輯上設計為如下的層次:臨時存儲區、數據清洗區、數據轉換區、基礎數據區、星型數據區、數據中心。其中要注意的是一條數據的etl處理流向有必須經過的區域包括:臨時存儲區、基礎數據區或星型數據區、數據中心。在其他的區域不一定存在。
(1)臨時存儲區。存放有源系統中剛抽取過來的數據。其中主要特點有:基于源系統數據結構的數據存儲、僅含本次加載的數據、簡單的數據裝載、同個實體多套數據結構。
大部分來自每個源系統的數據文件在源數據區將對應惟一找到一個惟一屬于自己的幾乎相同的數據結構(1對1的關系),以保障源數據裝載簡單易行。
(2)清洗區。存放有對臨時區經過了清洗的數據。其中主要特點有:基于源系統數據結構的數據存儲、僅含本次加載的數據、簡單的數據裝載、同個實體多套數據結構、錯誤的數據經過了修正,例如修改錯誤的日期。
(3)基礎數據區?;A數據區是整個系統的核心,存儲來自各種源數據系統的數據(主要是當前數據及包含部分歷史變更數據),具有統一的結構。以范式結構為主。可以提供查詢。其中主要特點有:①單套數據結構。大部分來自數據轉換區的實體在中央倉庫區將對應唯一找到一個屬于自己的數據結構(1對1的關系)。②數據結構和業務系統數據結構不同營銷分析系統物理數據模型與業務系統數據模型的差異體現。③較復雜但具有共性、穩定性的轉換規則。④性能一般?;A數據區的數據量大,操作復雜,關聯動作多,是數據轉換優化的重點。
(4)星型數據區。按星型結構組織的事實表的區域。包括了原子級別的事實表和聚集的事實表。原子級別的事實表的一行與基礎區中的相關表中的一行對應,是最細粒度的數據。數據聚合就是對原子級別的事實表或基礎區數據進行聚合計算形成聚合表。本區域設立的主要的目的是提高查詢分析的速度。其中主要特點有:①按星型結構組織,即一個事實表跟若干個維表關聯。②數據有冗余。
(5)存儲過程。進行etl處理的相關的存儲過程。
(6)數據中心。數據中心中的數據是從業務系統中抽取的,經過清洗的,仍按原業務系統中規則存儲的操作型數據。
該數據中心建成后,數據應和業務系統中同步,新開發系統如果要在業務系統中取數據,將不再直接連接業務系統,而是連接到此數據中心上。數據中心中的數據抽取到數據倉庫后所有數據仍然保留,不做刪除。
2.數據倉庫物理設計
(1)表空間設計。其中tce為temp(臨時區),clear(清洗區),extract(轉換區)。Basic為基礎區,star為星型區,ods為數據中心。Tceidx為tce區的索引存放表空間。basicidx為基礎區索引存放表空間,star為星型區的索引存放表空間。這樣設計主要為了把邏輯意義的區分開,也為性能考慮可以在表名前加前綴作為區分表所在的區。其中數據庫中所有的業務表全部放在一個用戶下,以方便在各個區之間加載轉換。
(2)歸檔設計。由于數據在數據倉庫中頻繁加載刪除和插入等操作,如果選用歸檔模式會使數據庫產生大量日志。如果歸檔將嚴重影響性能.而且數據倉庫對數據恢復的要求不高。所以決定采用非歸檔模式。
(3)安全性設計。數據庫中所有的業務表全部放在一個用戶下,以方便在各個區之間加載轉換。再建一個用戶用于展現,對所有的業務表只有只讀權限。
(4)備份恢復。這里采用每2天一次冷備份和一周一次邏輯備份??梢越邮芑謴蛢商烨暗臄祿?,然后通過etl重新從源數據庫中獲取最新數據。
(5)參數設計。由于數據倉庫經常刪除、插入,很少更新的特點,相對一般業務系統,加大塊的大小,增加preused和減少prefree。
四、結束語
以數據倉庫和數據挖掘為基礎的的建設是一個過程,并非一蹴而就。在這個過程中,業務需求和信息基礎設施規劃兩者都不可或缺。這其中科學規范的項目實施也是關鍵。我們有理由相信,隨著企業商務智能系統的實施與應用,企業競爭力將會大大增強。同時,隨著市場經濟的發展,商務智能系統在國內的應用也將越來越廣泛。
參考文獻:
[1]William H. Inmon著:數據倉庫[M]. 機械工業出版社,2006,8
[2]丁萍:商務智能技術在企業競爭中的應用[J].陜西科技大學學報,2004, (8):42~44
[3]焦慧敏汪林林:商務智能在現代企業中的應用與研究.計算機工程與設計,2006,(7):2503~2505