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

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

  我軍的裝備采購體系中存在著各種業(yè)務(wù)信息,隨著時(shí)間的推移,這些業(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)的一部分,提供了一個(gè)多維的聯(lián)機(jī)分析統(tǒng)計(jì)環(huán)境,具有分析預(yù)測形象、直觀、效果好的優(yōu)點(diǎn)。
1  數(shù)據(jù)倉庫和聯(lián)機(jī)分析處理技術(shù)
  傳統(tǒng)的數(shù)據(jù)庫主要用于事務(wù)處理,通常對一個(gè)或一組數(shù)據(jù)完成增加、刪除、修改、查詢和一些基本統(tǒng)計(jì)操作,主要用于支持特定的應(yīng)用服務(wù),也稱為操作型處理,側(cè)重于響應(yīng)時(shí)間、數(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í)間變化的數(shù)據(jù)集合,用來支持管理決策。數(shù)據(jù)倉庫中包含大量數(shù)據(jù),這些數(shù)據(jù)可能來自企業(yè)或組織內(nèi)部,也可能來自外部。這些數(shù)據(jù)組織為數(shù)據(jù)倉庫的目的是為了能夠更好地支持決策。目前,數(shù)據(jù)倉庫在銀行、股票、保險(xiǎn)、電信、航空、醫(yī)療保健、零售及制造等領(lǐng)域都有應(yīng)用。
  聯(lián)機(jī)分析處理(On-Line Analytical Processing,OLAP)是專門為特殊的數(shù)據(jù)存取和分析而設(shè)計(jì)的技術(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è)計(jì)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System,RDBMS)。該產(chǎn)品能夠快速地裝入和檢索數(shù)據(jù),特別是它的自動聚集對前臺應(yīng)用程序的開發(fā)是全透明的,極大地提高了常規(guī)分析的響應(yīng)時(shí)間。另外,在眾多的OLAP分析工具中,本文選擇了Informix公司的MetaCube,它采用星型模式,為用戶現(xiàn)有的關(guān)系數(shù)據(jù)庫提供一個(gè)直觀的多維視圖,而無需專用多維數(shù)據(jù)庫。Metacube具有如下的技術(shù)特點(diǎn):(1)易擴(kuò)展性。Metacube的元數(shù)據(jù)及計(jì)算中間表結(jié)構(gòu)簡單清晰,方便數(shù)據(jù)倉庫的擴(kuò)展;(2)開放性。Metacube在數(shù)據(jù)倉庫的各個(gè)部分都是開放的,包括RDBMS服務(wù)器、客戶端應(yīng)用開發(fā)工具、隨機(jī)查詢工具和報(bào)表生成工具。另外,用戶可以用自己喜歡的開發(fā)環(huán)境(如VB、VC、PB等)或前端應(yīng)用(Microsoft Word、Microsoft Excel等)作為數(shù)據(jù)倉庫的前端平臺;(3)具有強(qiáng)有力的查詢優(yōu)化功能,可以最大限度地提高效率。
2  系統(tǒng)設(shè)計(jì)
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í)也解決了數(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è)計(jì)
  下面介紹數(shù)據(jù)倉庫設(shè)計(jì)的步驟。
  (1)確定用戶需求。我軍的裝備采購業(yè)務(wù)系統(tǒng)積累了大量的歷史數(shù)據(jù),這些數(shù)據(jù)主要包括采購時(shí)間、裝備名稱、生產(chǎn)廠家、用途、采購經(jīng)費(fèi)、采購數(shù)量、采購價(jià)格等。如何對其進(jìn)行分析研究,從而得出內(nèi)在規(guī)律是一個(gè)相當(dāng)重要的問題。為此,本文確定了裝備購置費(fèi)研究、裝備采購量研究、裝備采購價(jià)格研究和生產(chǎn)廠家分布規(guī)律研究等主題。
  (2)邏輯設(shè)計(jì)。數(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)各維的維碼信息。量度可分為存儲量度和計(jì)算量度:存儲量度在數(shù)據(jù)倉庫表中有實(shí)際的字段存放數(shù)據(jù);而計(jì)算量度在數(shù)據(jù)倉庫中沒有相應(yīng)的字段,而是在SQL查詢語句中通過聚集函數(shù)獲得。
  本文設(shè)計(jì)多維數(shù)據(jù)模型的主要步驟是:①確定事實(shí)表和維度表;②設(shè)計(jì)事實(shí)表;③設(shè)計(jì)維度表。
多維數(shù)據(jù)模型有二種最基本的結(jié)構(gòu):星型結(jié)構(gòu)和雪花結(jié)構(gòu)。圖2所示為本系統(tǒng)數(shù)據(jù)倉庫的雪花模型。

  (3)物理設(shè)計(jì)。在確定了雪花模型后,需要將邏輯模型變成物理模型。物理模型建立數(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ù)庫中生成表格時(shí)(基礎(chǔ)表和臨時(shí)表),如果表格定義了關(guān)鍵字,則關(guān)鍵字自動生成B樹索引。TARGETindex是Red Brick Decision Server中的位圖或位向量索引。這些類型的索引有二種用途:弱選擇性維度列和事實(shí)表中的TARGETjion處理。STARindex是建立在事實(shí)表的外部關(guān)鍵字之上的惟一多列索引結(jié)構(gòu)。
  對于事實(shí)表來說,應(yīng)該為它的所有外鍵建立TARGETindex,并要建立至少包含所有外鍵的STARindex。如果一個(gè)TARGETindex包含惟一標(biāo)識每個(gè)事實(shí)行所需的列,則可以刪除主關(guān)鍵字索引。如果不刪除,則應(yīng)使其盡量小。
  對于維表來說,不要?jiǎng)h除主關(guān)鍵字的B樹索引。對每個(gè)外部關(guān)鍵字列生成B樹索引對維度中作為懸臂表外部關(guān)鍵字的列應(yīng)當(dāng)檢查,對查詢中經(jīng)常限制的列生成TARGETindex與樹索引。
  分段:分段是個(gè)數(shù)據(jù)管理工具,合理的分段有助于查詢性能的改進(jìn)。數(shù)據(jù)庫越大,分段提供的好處就越大。段的類型有二種,即默認(rèn)段和命名段,二者各有不同的功能??梢园催B接某個(gè)事實(shí)表的任意維度的主關(guān)鍵字將數(shù)據(jù)倉庫分段,大多數(shù)倉庫按某種時(shí)間定義分段,例如日、周、月、季、年等。
  聚集:決策支持查詢中最常見的操作之一是計(jì)算聚集匯總,如果沒有聚集,則這些查詢需要讀取成千上萬行數(shù)據(jù)才能計(jì)算和組合結(jié)果,查詢運(yùn)行時(shí),將需較長時(shí)間等待結(jié)果。例如,如果要按年度求客戶的總銷售額,則可能要讀取幾億行細(xì)節(jié)才能得到結(jié)果。運(yùn)行讀取大量細(xì)節(jié)行的查詢時(shí),最快的方法是根本不運(yùn)行它,而是對小表運(yùn)行同一查詢。這個(gè)小表中已經(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ù)拷貝到一個(gè)中間數(shù)據(jù)庫或者通過做一個(gè)簡單的應(yīng)用程序,把數(shù)據(jù)保存在其他文件中(例如文本文件、Word文件、Excel文件等)。
  (2)凈化數(shù)據(jù)。數(shù)據(jù)凈化主要考慮以下三個(gè)方面:①確保所有值準(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í),控制腳本作為命令行參數(shù)提供,TMU讀取這個(gè)腳本,然后完成必要的工作。
  例如:執(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的裝入器有二個(gè)版本:串行(TMU)和并行(PTMU)。并行裝入器主要用于多個(gè)CPU的裝入和聯(lián)機(jī)裝入,并行裝入比串行裝入速度快。
2.4 多維聯(lián)機(jī)分析設(shè)計(jì)
  多維數(shù)據(jù)的聯(lián)機(jī)分析處理就是從不同的角度和層次查詢滿足分析需求的數(shù)據(jù)。OLAP分析的基本操作動作有:切片、切塊、旋轉(zhuǎn)和鉆取。如圖3所示為“時(shí)間、裝備、廠家”的三維立方體,可以在上面完成上述操作。

  (1)切片。切片就是在多維模型的某一維上選定一維成員。例如在廠家維上選擇一個(gè)維成員(設(shè)為“廠家1”),就得到了廠家維上的一個(gè)切片。這個(gè)切片表示廠家1每年生產(chǎn)各種裝備的情況。
  (2)切塊。切塊可以看成是在切片的基礎(chǔ)上,進(jìn)一步確定各個(gè)維成員的區(qū)間得到的片段體,即由多個(gè)切片疊合起來。例如在時(shí)間維上設(shè)定一個(gè)區(qū)間(例如取“1990年至2000年”)。
  (3)旋轉(zhuǎn)。旋轉(zhuǎn)是改變維度的位置關(guān)系,使最終用戶可以從多角度來觀察數(shù)據(jù)。如將橫向的時(shí)間維和廠家維進(jìn)行交換,從而形成橫向?yàn)椴块T、縱向?yàn)闀r(shí)間的報(bào)表。
  (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ù)庫訪問、報(bào)表生成、做統(tǒng)計(jì)圖以及與已有的前端應(yīng)用進(jìn)行連接。
  用戶可以在Metacube Explorer中指定顯示哪一維,可以在任意坐標(biāo)軸上查看不同維、不同層次的信息或者數(shù)據(jù)倉庫上的其他有關(guān)信息。它所生成的報(bào)表和統(tǒng)計(jì)圖形象直觀,便于用戶進(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ù)中的一個(gè)有益嘗試,使原有的分析工作更加方便高效、形象直觀。作為裝備采購決策支持的一部分,該系統(tǒng)還需要進(jìn)一步的設(shè)計(jì)和完善,在現(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ì)算機(jī)工程與應(yīng)用,2003;(24)
5   曹鈺,張文俊,郝娜等.數(shù)據(jù)倉庫和聯(lián)機(jī)分析處理技術(shù)在裝備器材保障中的應(yīng)用.計(jì)算機(jī)應(yīng)用與軟件,2004;(5)

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