《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于數(shù)據(jù)倉庫的裝備采購聯(lián)機(jī)分析系統(tǒng)研究與設(shè)計
基于數(shù)據(jù)倉庫的裝備采購聯(lián)機(jī)分析系統(tǒng)研究與設(shè)計
王建忠,武根友
(軍械工程學(xué)院 計算機(jī)工程系,河北 石家莊050003)
摘要: 本文提出了一種基于數(shù)據(jù)倉庫的聯(lián)機(jī)分析處理系統(tǒng)的解決方案,,重點(diǎn)介紹了數(shù)據(jù)倉庫的設(shè)計方法和聯(lián)機(jī)分析處理方法,。
Abstract:
Key words :

摘   要: 本文提出了一種基于數(shù)據(jù)倉庫聯(lián)機(jī)分析處理系統(tǒng)的解決方案,重點(diǎn)介紹了數(shù)據(jù)倉庫的設(shè)計方法和聯(lián)機(jī)分析處理方法,。
關(guān)鍵詞: 數(shù)據(jù)倉庫  聯(lián)機(jī)分析處理  決策支持系統(tǒng)  裝備采購

  我軍的裝備采購體系中存在著各種業(yè)務(wù)信息,,隨著時間的推移,這些業(yè)務(wù)系統(tǒng)積累了大量甚至是海量的業(yè)務(wù)數(shù)據(jù),。如何充分利用這些數(shù)據(jù),,為高層領(lǐng)導(dǎo)者提供輔助決策是當(dāng)前所面臨的問題。長期以來,,軍械裝備采購決策一直沿用以手工為主的傳統(tǒng)方法,。這種方法周期長、費(fèi)用高,、投入人力多,、效率低,人為因素占很大比例,,已不能適應(yīng)新形勢的要求,。因此,建立裝備采購決策支持系統(tǒng)對于提高裝備采購決策的科學(xué)性、實(shí)現(xiàn)我軍裝備保障信息化是相當(dāng)必要的,。裝備采購聯(lián)機(jī)分析處理系統(tǒng)作為決策支持系統(tǒng)的一部分,,提供了一個多維的聯(lián)機(jī)分析統(tǒng)計環(huán)境,具有分析預(yù)測形象,、直觀,、效果好的優(yōu)點(diǎn)。
1  數(shù)據(jù)倉庫和聯(lián)機(jī)分析處理技術(shù)
  傳統(tǒng)的數(shù)據(jù)庫主要用于事務(wù)處理,,通常對一個或一組數(shù)據(jù)完成增加,、刪除、修改,、查詢和一些基本統(tǒng)計操作,,主要用于支持特定的應(yīng)用服務(wù),也稱為操作型處理,,側(cè)重于響應(yīng)時間,、數(shù)據(jù)的安全性、一致性和完整性等方面,。盡管在聯(lián)機(jī)事務(wù)處理(On-Line Transaction Processing,,OLTP)方面的應(yīng)用獲得了巨大的成功,但它對分析處理的支持一直不能令人滿意,。隨著社會的進(jìn)步和技術(shù)的發(fā)展,,人們不再僅僅滿足于獲取多種信息和簡單的使用信息,而是希望在深層次上利用長期積累的歷史信息為企業(yè)的決策提供幫助,。
  20世紀(jì)90年代初,,W.H.Inmon在其著作《Building the Data Warehouse》中提出了數(shù)據(jù)倉庫的概念。他認(rèn)為數(shù)據(jù)倉庫是面向主題的,、集成的、穩(wěn)定的,、隨時間變化的數(shù)據(jù)集合,,用來支持管理決策。數(shù)據(jù)倉庫中包含大量數(shù)據(jù),,這些數(shù)據(jù)可能來自企業(yè)或組織內(nèi)部,,也可能來自外部。這些數(shù)據(jù)組織為數(shù)據(jù)倉庫的目的是為了能夠更好地支持決策,。目前,,數(shù)據(jù)倉庫在銀行、股票,、保險,、電信、航空、醫(yī)療保健,、零售及制造等領(lǐng)域都有應(yīng)用,。
  聯(lián)機(jī)分析處理(On-Line Analytical Processing,OLAP)是專門為特殊的數(shù)據(jù)存取和分析而設(shè)計的技術(shù),。它能夠?qū)崿F(xiàn)數(shù)據(jù)倉庫基礎(chǔ)上的多維數(shù)據(jù)分析,。通過創(chuàng)建用于分析的多維數(shù)據(jù)集,進(jìn)一步采用切片,、切塊,、下鉆、上翻及旋轉(zhuǎn)等多維分析操作,,幫助用戶發(fā)現(xiàn)不同側(cè)面,、不同層次上的有用信息,從而使用戶更加直觀地理解和分析數(shù)據(jù),。

  目前,,許多數(shù)據(jù)庫廠商都推出了自己的數(shù)據(jù)倉庫產(chǎn)品。本文采用的是Informix公司的Red Brick,,它是為數(shù)據(jù)倉庫和聯(lián)機(jī)分析處理應(yīng)用程序設(shè)計的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System,,RDBMS)。該產(chǎn)品能夠快速地裝入和檢索數(shù)據(jù),,特別是它的自動聚集對前臺應(yīng)用程序的開發(fā)是全透明的,,極大地提高了常規(guī)分析的響應(yīng)時間。另外,,在眾多的OLAP分析工具中,,本文選擇了Informix公司的MetaCube,它采用星型模式,,為用戶現(xiàn)有的關(guān)系數(shù)據(jù)庫提供一個直觀的多維視圖,,而無需專用多維數(shù)據(jù)庫。Metacube具有如下的技術(shù)特點(diǎn):(1)易擴(kuò)展性,。Metacube的元數(shù)據(jù)及計算中間表結(jié)構(gòu)簡單清晰,,方便數(shù)據(jù)倉庫的擴(kuò)展;(2)開放性,。Metacube在數(shù)據(jù)倉庫的各個部分都是開放的,,包括RDBMS服務(wù)器、客戶端應(yīng)用開發(fā)工具,、隨機(jī)查詢工具和報表生成工具,。另外,用戶可以用自己喜歡的開發(fā)環(huán)境(如VB,、VC,、PB等)或前端應(yīng)用(Microsoft Word,、Microsoft Excel等)作為數(shù)據(jù)倉庫的前端平臺;(3)具有強(qiáng)有力的查詢優(yōu)化功能,,可以最大限度地提高效率,。
2  系統(tǒng)設(shè)計
2.1 系統(tǒng)的總體框架
  數(shù)據(jù)倉庫為聯(lián)機(jī)分析處理和決策支持提供了有效的數(shù)據(jù)存儲和處理環(huán)境。通過對事務(wù)數(shù)據(jù)庫的數(shù)據(jù)和外部數(shù)據(jù)的抽取,、凈化和轉(zhuǎn)換,,形成面向全局的數(shù)據(jù)視圖,同時也解決了數(shù)據(jù)不統(tǒng)一的問題,。前端的聯(lián)機(jī)分析(OLAP)工具對這些數(shù)據(jù)進(jìn)行分析處理,。基于數(shù)據(jù)倉庫的裝備采購聯(lián)機(jī)分析處理系統(tǒng)的總體框架如圖1所示,。

2.2 數(shù)據(jù)倉庫設(shè)計
  下面介紹數(shù)據(jù)倉庫設(shè)計的步驟,。
  (1)確定用戶需求。我軍的裝備采購業(yè)務(wù)系統(tǒng)積累了大量的歷史數(shù)據(jù),,這些數(shù)據(jù)主要包括采購時間,、裝備名稱、生產(chǎn)廠家,、用途,、采購經(jīng)費(fèi)、采購數(shù)量,、采購價格等,。如何對其進(jìn)行分析研究,從而得出內(nèi)在規(guī)律是一個相當(dāng)重要的問題,。為此,,本文確定了裝備購置費(fèi)研究、裝備采購量研究,、裝備采購價格研究和生產(chǎn)廠家分布規(guī)律研究等主題,。
  (2)邏輯設(shè)計。數(shù)據(jù)模型是數(shù)據(jù)倉庫的核心問題之一,。傳統(tǒng)的數(shù)據(jù)模型(如實(shí)體模型和關(guān)系模型)不能有效地表示數(shù)據(jù)倉庫中的數(shù)據(jù)結(jié)構(gòu)和語義,,也難以支持OLAP應(yīng)用。而多維數(shù)據(jù)模型和多維建模技術(shù)的提出解決了上述問題,。在多維數(shù)據(jù)模型中存在維度表和事實(shí)表二類數(shù)據(jù)表,。其中維度表存放的是該維各層次的對照關(guān)系數(shù)據(jù)和各層次的描述信息,;事實(shí)表存放的是量度和對應(yīng)各維的維碼信息,。量度可分為存儲量度和計算量度:存儲量度在數(shù)據(jù)倉庫表中有實(shí)際的字段存放數(shù)據(jù);而計算量度在數(shù)據(jù)倉庫中沒有相應(yīng)的字段,,而是在SQL查詢語句中通過聚集函數(shù)獲得,。
  本文設(shè)計多維數(shù)據(jù)模型的主要步驟是:①確定事實(shí)表和維度表;②設(shè)計事實(shí)表;③設(shè)計維度表,。
多維數(shù)據(jù)模型有二種最基本的結(jié)構(gòu):星型結(jié)構(gòu)和雪花結(jié)構(gòu),。圖2所示為本系統(tǒng)數(shù)據(jù)倉庫的雪花模型。

  (3)物理設(shè)計,。在確定了雪花模型后,,需要將邏輯模型變成物理模型。物理模型建立數(shù)據(jù)倉庫存儲與備份,、分段,、檢索、聚集策略等,。由于數(shù)據(jù)倉庫中存放著大量甚至海量的數(shù)據(jù),,為適應(yīng)對這些數(shù)據(jù)處理的要求,現(xiàn)將性能優(yōu)化的一些關(guān)鍵技術(shù)做簡要的介紹:
  索引:索引主要用于優(yōu)化查詢性能,,對于數(shù)據(jù)裝入的參照完整性檢查階段也相當(dāng)重要,。Red Brick包括B型樹索引、TARGETindex和STARindex三種不同類型的索引,。在Red Brick Decision Server數(shù)據(jù)庫中生成表格時(基礎(chǔ)表和臨時表),,如果表格定義了關(guān)鍵字,則關(guān)鍵字自動生成B樹索引,。TARGETindex是Red Brick Decision Server中的位圖或位向量索引,。這些類型的索引有二種用途:弱選擇性維度列和事實(shí)表中的TARGETjion處理。STARindex是建立在事實(shí)表的外部關(guān)鍵字之上的惟一多列索引結(jié)構(gòu),。
  對于事實(shí)表來說,,應(yīng)該為它的所有外鍵建立TARGETindex,并要建立至少包含所有外鍵的STARindex,。如果一個TARGETindex包含惟一標(biāo)識每個事實(shí)行所需的列,,則可以刪除主關(guān)鍵字索引。如果不刪除,,則應(yīng)使其盡量小,。
  對于維表來說,不要刪除主關(guān)鍵字的B樹索引,。對每個外部關(guān)鍵字列生成B樹索引對維度中作為懸臂表外部關(guān)鍵字的列應(yīng)當(dāng)檢查,,對查詢中經(jīng)常限制的列生成TARGETindex與樹索引。
  分段:分段是個數(shù)據(jù)管理工具,,合理的分段有助于查詢性能的改進(jìn),。數(shù)據(jù)庫越大,分段提供的好處就越大,。段的類型有二種,,即默認(rèn)段和命名段,,二者各有不同的功能??梢园催B接某個事實(shí)表的任意維度的主關(guān)鍵字將數(shù)據(jù)倉庫分段,,大多數(shù)倉庫按某種時間定義分段,例如日,、周,、月、季,、年等,。
  聚集:決策支持查詢中最常見的操作之一是計算聚集匯總,如果沒有聚集,,則這些查詢需要讀取成千上萬行數(shù)據(jù)才能計算和組合結(jié)果,,查詢運(yùn)行時,將需較長時間等待結(jié)果,。例如,,如果要按年度求客戶的總銷售額,則可能要讀取幾億行細(xì)節(jié)才能得到結(jié)果,。運(yùn)行讀取大量細(xì)節(jié)行的查詢時,,最快的方法是根本不運(yùn)行它,而是對小表運(yùn)行同一查詢,。這個小表中已經(jīng)有需要的信息(SUM,、AVG、MIN,、MAX之類的聚集),,只要讀取幾行就可以了。對聚集表運(yùn)行查詢具有更高效率,。Red Brick Decision Server用獨(dú)特的方法處理聚集:Vista子系統(tǒng)自動,、透明地改寫包含聚集函數(shù)的查詢,提供另一類索引,,在決策支持環(huán)境中提高偶發(fā)查詢性能,。
2.3 數(shù)據(jù)的抽取、凈化,、裝入
  數(shù)據(jù)的抽取,、凈化、裝入的過程如下:
(1)從業(yè)務(wù)數(shù)據(jù)中抽取數(shù)據(jù),。首先,,確保所抽取的數(shù)據(jù)適用于當(dāng)前的業(yè)務(wù)問題,避免抽取那些對做決策沒有作用的數(shù)據(jù),。然后,,把數(shù)據(jù)拷貝到一個中間數(shù)據(jù)庫或者通過做一個簡單的應(yīng)用程序,把數(shù)據(jù)保存在其他文件中(例如文本文件,、Word文件,、Excel文件等)。
  (2)凈化數(shù)據(jù),。數(shù)據(jù)凈化主要考慮以下三個方面:①確保所有值準(zhǔn)確有效,;②所有列中都具有有意義的值,沒有缺失值,;③每一行都保持參照完整性,。
  (3)裝入數(shù)據(jù)。Red Brick Decision Server數(shù)據(jù)庫從外部裝入數(shù)據(jù),,應(yīng)首先裝入維表,,然后再裝入事實(shí)表。它提供的TMU實(shí)用程序能夠快速地裝入數(shù)據(jù),,具有良好的性能,。TMU由指定輸入與輸出操作的控制腳本驅(qū)動。通過命令行調(diào)用TMU時,,控制腳本作為命令行參數(shù)提供,,TMU讀取這個腳本,然后完成必要的工作,。
  例如:執(zhí)行命令
  rb_tmu -d <db_name> <control_filename> <username>
  <password>
 控制文件 Example.TMU 格式為:
  load data
  inputfile ′/apps/redbrick/sample_input/aroma_class.txt′
  replace
  format separated by ′!′
  discardfile′/classn/stunnn/class.discards′
  discards 10
  into table class (
      classkey integer external(2),,classkey integer external,
      class_type char(12),,type character,,
      class_desc char(60) description character)……);
  其中aroma_class.txt為之前抽取的數(shù)據(jù)文件,。
  Red Brick Decision Server的裝入器有二個版本:串行(TMU)和并行(PTMU),。并行裝入器主要用于多個CPU的裝入和聯(lián)機(jī)裝入,并行裝入比串行裝入速度快,。
2.4 多維聯(lián)機(jī)分析設(shè)計
  多維數(shù)據(jù)的聯(lián)機(jī)分析處理就是從不同的角度和層次查詢滿足分析需求的數(shù)據(jù),。OLAP分析的基本操作動作有:切片、切塊,、旋轉(zhuǎn)和鉆取,。如圖3所示為“時間、裝備,、廠家”的三維立方體,,可以在上面完成上述操作。

  (1)切片,。切片就是在多維模型的某一維上選定一維成員,。例如在廠家維上選擇一個維成員(設(shè)為“廠家1”),,就得到了廠家維上的一個切片。這個切片表示廠家1每年生產(chǎn)各種裝備的情況,。
  (2)切塊,。切塊可以看成是在切片的基礎(chǔ)上,進(jìn)一步確定各個維成員的區(qū)間得到的片段體,,即由多個切片疊合起來,。例如在時間維上設(shè)定一個區(qū)間(例如取“1990年至2000年”)。
  (3)旋轉(zhuǎn),。旋轉(zhuǎn)是改變維度的位置關(guān)系,,使最終用戶可以從多角度來觀察數(shù)據(jù)。如將橫向的時間維和廠家維進(jìn)行交換,,從而形成橫向?yàn)椴块T,、縱向?yàn)闀r間的報表。
  (4)鉆取,。如果維度是有層次的,,則可以采取鉆取,包括向上鉆取(roll up)和向下鉆取(drill down),。roll up是在某一維上將低層次的細(xì)節(jié)數(shù)據(jù)概括到高層次的匯總數(shù)據(jù),,或者減少維數(shù);而drill down則相反,,它從匯總數(shù)據(jù)深入到細(xì)節(jié)數(shù)據(jù)進(jìn)行觀察 ,。例如裝備維上可以從裝備大類向裝備中類鉆取,裝備中類再向裝備小類鉆取,。
  本文所采用的Metacube Explorer是為最終用戶隨機(jī)查詢提供的決策支持產(chǎn)品,。它具有界面友好、操作簡單的特點(diǎn),,用戶通過簡單的拖—放操作即可完成數(shù)據(jù)庫訪問,、報表生成、做統(tǒng)計圖以及與已有的前端應(yīng)用進(jìn)行連接,。
  用戶可以在Metacube Explorer中指定顯示哪一維,,可以在任意坐標(biāo)軸上查看不同維、不同層次的信息或者數(shù)據(jù)倉庫上的其他有關(guān)信息,。它所生成的報表和統(tǒng)計圖形象直觀,,便于用戶進(jìn)行對比、分析,。其開放性可以使開發(fā)人員利用前端工具進(jìn)行開發(fā),,以滿足具體的要求。
3  系統(tǒng)開發(fā)
  該系統(tǒng)采用C/S模式,服務(wù)器操作系統(tǒng)是Windows 2000 Server,,客戶端操作系統(tǒng)采用Windows 98,、Windows 2000 Professional或Windows XP,中心數(shù)據(jù)倉庫產(chǎn)品采用Informix Red Brick,,OLAP分析工具為Informix Metacube,,前端應(yīng)用程序采用Visual Basic 6.0開發(fā)。
4  結(jié)束語
  該系統(tǒng)是數(shù)據(jù)倉庫技術(shù)在裝備采購業(yè)務(wù)中的一個有益嘗試,,使原有的分析工作更加方便高效、形象直觀,。作為裝備采購決策支持的一部分,,該系統(tǒng)還需要進(jìn)一步的設(shè)計和完善,在現(xiàn)有數(shù)據(jù)倉庫的基礎(chǔ)上,,開發(fā)數(shù)據(jù)挖掘模塊,。隨著系統(tǒng)的逐步完善,必將能夠?yàn)槲臆娧b備采購決策人員提供科學(xué)的依據(jù),,從而推動我軍裝備采購決策現(xiàn)代化的進(jìn)程,。
參考文獻(xiàn)
1   張維民.數(shù)據(jù)倉庫原理與應(yīng)用.北京:電子工業(yè)出版社,2002
2   Inmon W H著,,王志海譯.數(shù)據(jù)倉庫.北京:機(jī)械工業(yè)出版社,,2003
3   Robert J.Hocutt  Informix/Red Brick數(shù)據(jù)倉庫開發(fā)指南.北京:電子工業(yè)出版社,2001
4   李中華,,張力軍,,郭穎.基于數(shù)據(jù)倉庫的中國專利審查聯(lián)機(jī)分析處理系統(tǒng).計算機(jī)工程與應(yīng)用,2003,;(24)
5   曹鈺,,張文俊,郝娜等.數(shù)據(jù)倉庫和聯(lián)機(jī)分析處理技術(shù)在裝備器材保障中的應(yīng)用.計算機(jī)應(yīng)用與軟件,,2004,;(5)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。