周麗平+++周芳+++薛曉亞+++劉園園
摘 要:數(shù)據(jù)倉庫系統(tǒng)在創(chuàng)建、維護(hù)過程中,隨著數(shù)據(jù)的飛速膨脹與用戶需求的不斷變化,應(yīng)根據(jù)應(yīng)用的實(shí)際情況增減新的組件以提高數(shù)據(jù)倉庫的綜合性能。結(jié)合新形勢下的多應(yīng)用組件需求,文章提出了基于元數(shù)據(jù)管理的設(shè)計(jì)方案實(shí)現(xiàn)可擴(kuò)展的數(shù)據(jù)倉庫系統(tǒng),通過元數(shù)據(jù)管理與接口設(shè)計(jì)對數(shù)據(jù)倉庫進(jìn)行規(guī)范和組織,解決了數(shù)據(jù)倉庫系統(tǒng)各層數(shù)據(jù)的交互問題,同時(shí)增強(qiáng)了數(shù)據(jù)倉庫系統(tǒng)的擴(kuò)展性,提高其應(yīng)用的多樣性和適應(yīng)性。
關(guān)鍵詞:數(shù)據(jù)倉庫;元數(shù)據(jù);體系結(jié)構(gòu);接口
1 概述
數(shù)據(jù)倉庫所要管理的數(shù)據(jù)量要遠(yuǎn)遠(yuǎn)多于傳統(tǒng)系統(tǒng)所管理的數(shù)據(jù)量,隨著時(shí)間的推移數(shù)據(jù)倉庫平臺必須支持更多的數(shù)據(jù)和用戶、更多的和復(fù)雜的查詢處理,隨著系統(tǒng)功能的增加,在應(yīng)用接入的同時(shí)需要保持原有能力,并能夠加載新應(yīng)用,結(jié)合各類需求使得數(shù)據(jù)倉庫系統(tǒng)需要支持可擴(kuò)展。
在傳統(tǒng)數(shù)據(jù)倉庫設(shè)計(jì)的體系結(jié)構(gòu)下,系統(tǒng)內(nèi)部結(jié)構(gòu)耦合程度高,OLAP與數(shù)據(jù)挖掘功能組件結(jié)合緊密。當(dāng)前,增加數(shù)據(jù)倉庫系統(tǒng)體系結(jié)構(gòu)的可擴(kuò)展性主要有兩種模式:一種主要研究系統(tǒng)部件模塊化和分層策略提高數(shù)據(jù)倉庫的可擴(kuò)展性。如基于Web的數(shù)據(jù)挖掘算法與數(shù)據(jù)倉庫的接口設(shè)計(jì)[1],將算法庫模塊化并解決了算法與數(shù)據(jù)倉庫的接口問題;基于Agent的三層數(shù)據(jù)倉庫系統(tǒng)體系結(jié)構(gòu)的研究,將軟件Agent引入數(shù)據(jù)倉庫系統(tǒng),增強(qiáng)了系統(tǒng)的伸縮性,拓廣了數(shù)據(jù)倉庫的應(yīng)用領(lǐng)域[2]。另一種是采用高性能軟硬件、并行計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),用可擴(kuò)展的軟件并行和硬件并行相結(jié)合的方法進(jìn)行數(shù)據(jù)倉庫的性能擴(kuò)展。如采用高速緩存相關(guān)的非一致性內(nèi)存訪同結(jié)構(gòu),并且較好地利用I/O并行性,解決大量異構(gòu)數(shù)據(jù)涌入可擴(kuò)展數(shù)據(jù)倉庫中時(shí)系統(tǒng)性能問題;采用并行技術(shù)實(shí)現(xiàn)基于可擴(kuò)展的數(shù)據(jù)集市的數(shù)據(jù)倉庫系統(tǒng)結(jié)構(gòu)[3]等。
在數(shù)據(jù)倉庫系統(tǒng)的設(shè)計(jì)過程中,如果采用多層擴(kuò)展或分層內(nèi)部模塊化方式實(shí)現(xiàn)擴(kuò)展,系統(tǒng)中單一層模塊不斷增加,層內(nèi)部件耦合度不斷提高,降低了系統(tǒng)的可維護(hù)性。而采用高性能軟硬件、并行解決方案,除考慮費(fèi)用問題外,還需建立高性能平臺。如果其中某個(gè)組件性能較弱,將會影響整個(gè)數(shù)據(jù)倉庫系統(tǒng),增加了數(shù)據(jù)倉庫系統(tǒng)開發(fā)與維護(hù)的難度。
為更有效地適應(yīng)數(shù)據(jù)的飛速膨脹與用戶需求的不斷變化,管理分布的、異構(gòu)的集成環(huán)境,保持?jǐn)?shù)據(jù)倉庫系統(tǒng)層次的獨(dú)立性和自主性,減輕開發(fā)與維護(hù)的負(fù)擔(dān),作者提出了基于元數(shù)據(jù)管理的可擴(kuò)展數(shù)據(jù)倉庫系統(tǒng)體系結(jié)構(gòu)與接口設(shè)計(jì)方案,通過層次與模塊自定義擴(kuò)展提高數(shù)據(jù)倉庫的可擴(kuò)展性,增強(qiáng)系統(tǒng)的可擴(kuò)展性和可維護(hù)性。
2 基于元數(shù)據(jù)管理的數(shù)據(jù)倉庫系統(tǒng)
體系結(jié)構(gòu):基于元數(shù)據(jù)管理的可擴(kuò)展數(shù)據(jù)倉庫系統(tǒng)模型體系結(jié)構(gòu)如圖1所示,包括元數(shù)據(jù)管理層、數(shù)據(jù)存儲層、數(shù)據(jù)處理層、前端應(yīng)用層。隨工作負(fù)載的增加,數(shù)據(jù)倉庫系統(tǒng)需要進(jìn)行功能擴(kuò)展時(shí),元數(shù)據(jù)層通過對接口文件的管理,將完成層次的增刪。完成數(shù)據(jù)倉庫邏輯層次與物理層次的實(shí)際擴(kuò)展,保證了數(shù)據(jù)倉庫系統(tǒng)體系結(jié)構(gòu)的清晰性與可擴(kuò)展性。
(1)元數(shù)據(jù)管理層
元數(shù)據(jù)管理層包括元數(shù)據(jù)獲取、元數(shù)據(jù)存儲、元數(shù)據(jù)服務(wù)接口、元數(shù)據(jù)管理和元數(shù)據(jù)應(yīng)用等組件,在系統(tǒng)執(zhí)行過程中完成任務(wù)接受、任務(wù)分解、系統(tǒng)管理、請求判斷、日志記錄等功能。存儲的元數(shù)據(jù)包括技術(shù)元數(shù)據(jù)(Technical Metadata)和業(yè)務(wù)元數(shù)據(jù)(Business Metadata)。為實(shí)現(xiàn)可擴(kuò)展的數(shù)據(jù)倉庫系統(tǒng),將元數(shù)據(jù)分為基礎(chǔ)元數(shù)據(jù)、運(yùn)行元數(shù)據(jù)和映射元數(shù)據(jù)三類,系統(tǒng)應(yīng)用以組件形式加載,通過接口實(shí)現(xiàn)各層關(guān)聯(lián)。
(2)數(shù)據(jù)存儲層
數(shù)據(jù)存儲層主要由原始數(shù)據(jù)和結(jié)果數(shù)據(jù)構(gòu)成。原始數(shù)據(jù)為數(shù)據(jù)倉庫中所存儲的各類應(yīng)用多源數(shù)據(jù);結(jié)果數(shù)據(jù)由各類數(shù)據(jù)分析和挖掘服務(wù)計(jì)算產(chǎn)生。
(3)數(shù)據(jù)處理層
數(shù)據(jù)處理層中集成各類數(shù)據(jù)集成工具、多維分析工具、數(shù)據(jù)挖掘工具等,完成原始數(shù)據(jù)處理形成結(jié)果數(shù)據(jù),為用戶提供決策支持。
(4)前端應(yīng)用層
前端應(yīng)用層完成對用戶輸入?yún)?shù)的獲取,以數(shù)據(jù)流的形式提供給諸如元數(shù)據(jù)層進(jìn)行分析。本模塊通過使用系統(tǒng)web頁面獲取所需數(shù)據(jù),參數(shù)獲取的方式是調(diào)用可視化系統(tǒng)中關(guān)于應(yīng)用請求的API接口。
3 接口設(shè)計(jì)
為實(shí)現(xiàn)各功能組件能夠訪問數(shù)據(jù)倉庫與增強(qiáng)數(shù)據(jù)倉庫系統(tǒng)的可擴(kuò)展性,需要對數(shù)據(jù)倉庫各層之間的接口進(jìn)行設(shè)計(jì)(圖2所示)。通過接口設(shè)計(jì)對各層進(jìn)行必要的規(guī)范和組織,數(shù)據(jù)倉庫中每層都按照該規(guī)范和定義建立相應(yīng)的模型構(gòu)造,各層獨(dú)立并通過接口進(jìn)行交互,各層內(nèi)部實(shí)現(xiàn)封裝。系統(tǒng)數(shù)據(jù)傳輸過程從接口文件開始,需要對接口進(jìn)行規(guī)范化描述,以保證接口文件的質(zhì)量和數(shù)據(jù)抽取流程的正確。
(1)元數(shù)據(jù)層服務(wù)控制中心
系統(tǒng)以元數(shù)據(jù)層組件構(gòu)成服務(wù)控制中心,實(shí)現(xiàn)數(shù)據(jù)倉庫的可擴(kuò)展性;建立模型管理庫,為上層協(xié)同服務(wù)集成提供各種應(yīng)用接口;構(gòu)建可擴(kuò)展的數(shù)據(jù)挖掘平臺示范應(yīng)用。元數(shù)據(jù)層的對外接口模塊有數(shù)據(jù)存儲層模塊、數(shù)據(jù)處理處理模塊和前端應(yīng)用層接收模塊,完成接口文件處理、權(quán)限驗(yàn)證、完整性判斷、接口文件管理、異常處理、消息傳遞等功能。
(2)數(shù)據(jù)獲取接口
數(shù)據(jù)獲取接口模塊通過各數(shù)據(jù)層組件實(shí)現(xiàn)對數(shù)據(jù)的抽取,為上層服務(wù)提供數(shù)據(jù)基礎(chǔ)。完成對數(shù)據(jù)源組件、數(shù)據(jù)映射組件、模型組件、關(guān)系組件等的操作與控制,提供數(shù)據(jù)結(jié)果。對外接口為元數(shù)據(jù)處理模塊和數(shù)據(jù)處理層接收模塊兩部分,傳遞與元數(shù)據(jù)處理的交互參數(shù)和對數(shù)據(jù)處理層傳輸?shù)臄?shù)據(jù)信息相關(guān)的參數(shù)。
(3)數(shù)據(jù)處理庫接口
數(shù)據(jù)處理庫接口完成對數(shù)據(jù)處理層各算法和工具組件的調(diào)用與控制,其對外接口模塊包含元數(shù)據(jù)處理模塊、應(yīng)用層模塊和數(shù)據(jù)層模塊。與元數(shù)據(jù)為交互參數(shù)的傳遞;與應(yīng)用層模塊傳遞的為復(fù)合類型;與數(shù)據(jù)層交互規(guī)范為接收數(shù)據(jù)層傳輸?shù)膹?fù)合類型數(shù)據(jù)。
(4)應(yīng)用庫接口
應(yīng)用庫接口完成對前端應(yīng)用層功能模塊的操作,提供各類前端BI展示方式。其對外接口模塊包含元數(shù)據(jù)模塊和數(shù)據(jù)處理模塊兩部分,完成與元數(shù)據(jù)模塊進(jìn)行查詢、反饋參數(shù)的交互;與數(shù)據(jù)處理層數(shù)據(jù)的交互。
4 應(yīng)用實(shí)例
基于前面介紹的技術(shù)和方法,作者以赤潮為例設(shè)計(jì)并實(shí)現(xiàn)了數(shù)據(jù)倉庫系統(tǒng)各層以及接口的實(shí)現(xiàn)。完成了各層間接口及各層內(nèi)的算法、工具組件輸入輸出數(shù)據(jù)參數(shù)的定義和預(yù)處理功能。(圖3所示)
從用戶提交輸入?yún)?shù)中獲取請求數(shù)據(jù),調(diào)用獲取模塊得到用戶的輸入信息,并按照要求進(jìn)行格式轉(zhuǎn)換。從客戶端獲取符合規(guī)范的請求傳輸至服務(wù)端,對接收的請求進(jìn)行請求判斷,如系統(tǒng)資源是否支持、請求是否超出權(quán)限等。多線程執(zhí)行請求任務(wù),完成多維分析與數(shù)據(jù)挖掘,實(shí)現(xiàn)對已有數(shù)據(jù)直接操作、對原始數(shù)據(jù)進(jìn)行查詢操作、原始數(shù)據(jù)查詢結(jié)果與已有數(shù)據(jù)進(jìn)行集成操作等功能。元數(shù)據(jù)管理綜合各種數(shù)據(jù)和信息,對數(shù)據(jù)倉庫系統(tǒng)的執(zhí)行過程進(jìn)行控制。完成記錄操作信息、對比分析用戶操作等。通過展示工具集將目標(biāo)數(shù)據(jù)反饋給用戶,實(shí)現(xiàn)交互式的旋轉(zhuǎn)、鉆取和切片等分析操作。
5 結(jié)束語
上述基于元數(shù)據(jù)管理的數(shù)據(jù)倉庫系統(tǒng)體系結(jié)構(gòu)與接口方案,主要采用對接口文件管理的策略,實(shí)現(xiàn)系統(tǒng)各層間及部件內(nèi)部的交互規(guī)范,層次與模塊自定義擴(kuò)展。本文提出了一種新的切實(shí)可行的數(shù)據(jù)倉庫體系結(jié)構(gòu),有效避免了系統(tǒng)部件的耦合,實(shí)現(xiàn)了對功能的分割和保護(hù),增加了數(shù)據(jù)倉庫系統(tǒng)部件的獨(dú)立性,解決了系統(tǒng)數(shù)據(jù)交互的規(guī)范問題。通過應(yīng)用這種數(shù)據(jù)倉庫體系結(jié)構(gòu)與接口方案,提高了數(shù)據(jù)倉庫系統(tǒng)的開發(fā)效率,可以降低系統(tǒng)維護(hù)的復(fù)雜性,增強(qiáng)系統(tǒng)的可擴(kuò)展性和可維護(hù)性。通過接口技術(shù)完成數(shù)據(jù)倉庫的多維分析與數(shù)據(jù)挖掘發(fā)現(xiàn)有用知識,提高了決策的智能性,同時(shí)保證了系統(tǒng)的擴(kuò)展性。
參考文獻(xiàn)
[1]劉新穎,王麗亞.基于Web的數(shù)據(jù)挖掘算法與數(shù)據(jù)倉庫的接口設(shè)計(jì)[J].上海:計(jì)算機(jī)工程,2006,32(21):88-90.
[2]徐忠健,袁捷,楊倩.基于Agent的三層數(shù)據(jù)倉庫系統(tǒng)體系結(jié)構(gòu)的研究[J].上海:計(jì)算機(jī)工程,29(3):58-60.
[3]程平,黃仁,陳艷.高性能數(shù)據(jù)倉庫平臺構(gòu)建的研究[J].北京:計(jì)算機(jī)工程與設(shè)計(jì),2006,27(12):2189-2191.