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

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

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

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

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

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

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

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