摘 要:數(shù)據(jù)倉庫技術(shù)廣泛服務(wù)于業(yè)界信息系統(tǒng)建設(shè)之需求,大數(shù)據(jù)分布式架構(gòu)的興起也促進(jìn)了數(shù)據(jù)倉庫技術(shù)帶的發(fā)展。文章結(jié)合一個應(yīng)用項(xiàng)目的需求,設(shè)計(jì)開源技術(shù)方案,實(shí)施多種異構(gòu)數(shù)據(jù)整合、元數(shù)據(jù)驅(qū)動、主題標(biāo)簽及Extjs架構(gòu)的圖形顯示。實(shí)現(xiàn)了一套可視化的數(shù)據(jù)倉庫系統(tǒng),用以解決復(fù)雜的異構(gòu)數(shù)據(jù)以及數(shù)據(jù)的展示,也為后續(xù)的決策支持系統(tǒng)構(gòu)建和數(shù)據(jù)挖掘工作提供基礎(chǔ)。
關(guān)鍵詞:元數(shù)據(jù);ETL;異構(gòu)數(shù)據(jù);數(shù)據(jù)倉庫
1 引言
隨著聯(lián)入互聯(lián)網(wǎng)絡(luò)的發(fā)展,主機(jī)數(shù)、用戶數(shù)和信息源節(jié)點(diǎn)數(shù)的爆炸性增長,使數(shù)據(jù)形式也出現(xiàn)了多樣化,不光有結(jié)構(gòu)性的數(shù)據(jù),還有許許多多例如TXT文件或者圖片視頻等非結(jié)構(gòu)性數(shù)據(jù)類型,但這些分散的數(shù)據(jù)使人們在信息檢索和網(wǎng)絡(luò)資源管理等方面面臨著許多難題。
關(guān)系型數(shù)據(jù)庫具有極強(qiáng)的管理能力,數(shù)據(jù)的安全性高,和可靠的并發(fā)機(jī)制,一直是結(jié)構(gòu)化數(shù)據(jù)存儲的主流。但各種數(shù)據(jù)庫系統(tǒng)之間的差異,已經(jīng)所依賴操作系統(tǒng)之間的異構(gòu)型,嚴(yán)重影響了信息共享和數(shù)據(jù)交換。
隨著應(yīng)用的不斷進(jìn)步發(fā)展,企業(yè)已經(jīng)不能光靠聯(lián)機(jī)事務(wù)處理OLAP去應(yīng)對壓力取得行業(yè)領(lǐng)先水平,這是他們需要對自身業(yè)務(wù)的運(yùn)作及整個市場行業(yè)相關(guān)的趨勢進(jìn)行分析,做出有利的決策。這時對以往大量的歷史數(shù)據(jù)的使用和存貯就成了勢在必行。 但實(shí)際企業(yè)與企業(yè)之間,企業(yè)內(nèi)部各部門之間業(yè)務(wù)、目標(biāo)以及操作系統(tǒng)、存儲方式的不同必然造成數(shù)據(jù)上的差異,不能提供有效的信息共享,形成數(shù)據(jù)孤島,不能滿足管理人員決策分析的需求。傳統(tǒng)關(guān)系數(shù)據(jù)庫依然不能滿足以上需求,這時就需要一種能夠適應(yīng)決策分析的數(shù)據(jù)環(huán)境——數(shù)據(jù)倉庫(Data Warehouse,DW)。在本文中建立一套數(shù)據(jù)倉庫系統(tǒng),完成了多種異構(gòu)數(shù)據(jù)的整合,簡單的BI分析并用圖表顯示。第二部分講述數(shù)據(jù)倉庫整體架構(gòu)思路,第三部分為本套以元數(shù)據(jù)為驅(qū)動系統(tǒng)的具體實(shí)施,第四部分文章總結(jié)。
2 技術(shù)背景
數(shù)據(jù)倉庫是數(shù)據(jù)分析和決策支持系統(tǒng)(Decision Supporting System,DSS)在當(dāng)代海量數(shù)據(jù)背景下產(chǎn)生的技術(shù)。是一個面向主題的、集成的、相對穩(wěn)定的、反映歷史變化的結(jié)構(gòu)化數(shù)據(jù)集合[1]。數(shù)據(jù)倉庫的建設(shè)更像一個過程而不是工程,以現(xiàn)有企業(yè)大量歷史的數(shù)據(jù)作為積累,進(jìn)行歸納重組,運(yùn)算分析,把計(jì)策信息及時地交給企業(yè)管理層,這才是數(shù)據(jù)倉庫的根本任務(wù)。經(jīng)典架構(gòu)見圖1。
圖1 經(jīng)典數(shù)據(jù)倉庫DW
ETL(Extract-Transform-Load),即從各種異構(gòu)數(shù)據(jù)源中抽取數(shù)據(jù),并按照預(yù)先設(shè)計(jì)好的規(guī)則進(jìn)行轉(zhuǎn)化清洗,處理一些冗余、歧義、殘缺、違反業(yè)務(wù)邏輯的數(shù)據(jù),統(tǒng)一數(shù)據(jù)粒度,最后加載到目標(biāo)數(shù)據(jù)倉庫中,是建立數(shù)據(jù)倉庫的必要基礎(chǔ)。ETL設(shè)計(jì)和開發(fā)占整個數(shù)據(jù)倉庫系統(tǒng)開發(fā)量的60%~80%[2],一般有兩種工具方案供選擇:一種使用數(shù)據(jù)倉庫引擎廠商提供的ETL工具進(jìn)行數(shù)據(jù)的加載;通過ETL工具提供的編程API進(jìn)行數(shù)據(jù)的加載。前一種更加簡便快捷,后一種更加靈活,性能也有一定的提升。此外最主要的問題就是如何建立有針對性的ETL過程模型,研究組織對早期建立ETL過程模型也給出了很多建議[5]。還有國外著名數(shù)據(jù)倉庫軟件廠商,如Informatica的powercenter,IBM的infoSphereDataStage,Oracle的Oracle Data Integration,Microsoft的SSIS都是優(yōu)秀的數(shù)據(jù)倉庫工具,其中也有源工具Repository Explorer,Beeload,Kettle,DataSpider集成整套的DW和BI功能。
ETL過程的設(shè)計(jì)需要對數(shù)據(jù)結(jié)構(gòu),不同的主題也需要設(shè)計(jì)專門的ETL的過程。所以當(dāng)需要轉(zhuǎn)變商業(yè)規(guī)則或數(shù)據(jù)結(jié)構(gòu),就需要重新設(shè)計(jì)ETL過程,重用性很低。為了解決以上問題,設(shè)計(jì)一種新的ETL應(yīng)對方案,解決的了過程核心的重復(fù)編寫,提供了重用性,采用了ETL工具和API接口相結(jié)合的架構(gòu)方式,能夠滿足大部分的數(shù)據(jù)源和多樣的處理過程,在保證數(shù)據(jù)加載性能的同時更靈活方便,以元數(shù)據(jù)為驅(qū)動,實(shí)施了一整套數(shù)據(jù)倉庫系統(tǒng)并研究分析。
3 系統(tǒng)設(shè)計(jì)
本系統(tǒng)主要以意大利Pavia大學(xué)IRMA項(xiàng)目為背景,實(shí)現(xiàn)一套交互性的城市助手系統(tǒng),建立數(shù)據(jù)倉庫,提供分析圖表,幫助行政人員更好的管理城市基礎(chǔ)設(shè)施。市民也可以使用手機(jī)APP主動的加入到城市的監(jiān)控,對公共設(shè)施出現(xiàn)的問題可以立即拍照上傳,并根據(jù)位置信息顯示在地圖上,不同用戶間可以相互評論。城市管理人員在web端監(jiān)視到出現(xiàn)的問題,就會派專人去查看、確定問題,之后會有維修人員到現(xiàn)場去處理,并使用App追蹤維修進(jìn)度。當(dāng)事故解除,市民能查看到問題已處理,可以放心出行。城市管理者也會收到反饋,這樣管理者可以對事故做進(jìn)一步的預(yù)測、預(yù)防。
首先以事故為主題確立需求,建立異構(gòu)數(shù)據(jù)整合架構(gòu)——即ETL過程設(shè)計(jì),包括源數(shù)據(jù)確立、元數(shù)據(jù)驅(qū)動、ETL流程包。接著選擇維度屬性建立數(shù)據(jù)倉庫,包括事實(shí)表維表屬性選取、虛實(shí)多維數(shù)據(jù)庫設(shè)計(jì)。
3.1 異構(gòu)數(shù)據(jù)整合架構(gòu)
源數(shù)據(jù)——本文的系統(tǒng)主要由三種異構(gòu)數(shù)據(jù)源,文本、xls、xml和數(shù)據(jù)庫,文本數(shù)據(jù)源和XlS文件,一般為業(yè)務(wù)部門常用數(shù)據(jù)格式,其中文本數(shù)據(jù)屬于非結(jié)構(gòu)化數(shù)據(jù);XML源數(shù)據(jù)主要是從新浪微博上根據(jù)關(guān)鍵字抽取的數(shù)據(jù)。傳統(tǒng)數(shù)據(jù)庫一般為系統(tǒng)內(nèi)部結(jié)構(gòu)化數(shù)據(jù)和外部開放API的DBMS數(shù)據(jù),主要抽取跨業(yè)務(wù)的結(jié)構(gòu)化數(shù)據(jù)。
元數(shù)據(jù)——是關(guān)于數(shù)據(jù)的數(shù)據(jù),通過掃描數(shù)據(jù)字典來加載源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的體系結(jié)構(gòu),表相關(guān)信息等等。元數(shù)據(jù)庫管理模塊對元數(shù)據(jù)庫中的元數(shù)據(jù)提供修改和維護(hù)管理并寫入日志。中間件是轉(zhuǎn)換過程中的重要部件,減少對數(shù)據(jù)庫的操作,增加轉(zhuǎn)換效率,提高數(shù)據(jù)操作的可靠性和一致性。見圖2。
圖2 元數(shù)據(jù)驅(qū)動架構(gòu)
ETL——數(shù)據(jù)的抽取是ETL過程的第一步,從多種異構(gòu)數(shù)據(jù)源根據(jù)規(guī)則抽取數(shù)據(jù),系統(tǒng)中三種主要源文件:文本數(shù)據(jù)為非結(jié)構(gòu)化數(shù)據(jù),作者主要采用正則表達(dá)式和語義詞典相結(jié)合的方式抽??;數(shù)據(jù)庫數(shù)據(jù)抽取方面直接使用ETL的工具抽取;XML和XLS的文件需要進(jìn)行預(yù)處理,抽取模式和數(shù)據(jù)庫基本相同。
把多個功能相近的translater根據(jù)功能組成job,多個job組合實(shí)現(xiàn)了整個ETL過程。如圖3。兩個內(nèi)部關(guān)系數(shù)據(jù)庫在抽取時先過濾掉重復(fù)記錄與空白記錄,xls文件要先設(shè)定數(shù)據(jù)字段的映射,文本文件需要進(jìn)行字段操作提取所需的信息。分布式平臺上抽取的數(shù)據(jù)需要先進(jìn)行字段拆分以便于文本字段整合,最后再通過相應(yīng)的轉(zhuǎn)換流程與結(jié)構(gòu)化數(shù)據(jù)整合。
3.2 多維數(shù)據(jù)倉庫數(shù)據(jù)庫
多維數(shù)據(jù)模型——主要包括事實(shí)表和維表,每個數(shù)據(jù)倉庫都包含一個或者多個事實(shí)表(見表1),它是每個多維模型的核心,不應(yīng)該包含描述性的信息,以及除了數(shù)據(jù)度量字段與維度表中相關(guān)索引字段外任何的數(shù)據(jù)。維度表可以用來看作用戶分析數(shù)據(jù)的窗口,表中包含事實(shí)數(shù)據(jù)記錄的特性,提供信息并包含幫助匯總信息特性的層次結(jié)構(gòu)。(見表2)
圖4 DFM雪花圖
表1 事實(shí)表
表2 維度表
CUBE——區(qū)域查詢時數(shù)據(jù)倉庫中進(jìn)行OLAP分析的重要操作,為了提高查詢速度及分析性能,我們根據(jù)主題和需求定義分析模型,建立CUBE。常用的Cube分為三種:物理Cube、虛擬Cube、物理結(jié)合虛擬Cube。作者采用物理虛擬相結(jié)合能很好的發(fā)揮兩者的優(yōu)點(diǎn)。把常用的時間維度、事故維度、區(qū)域維度等數(shù)據(jù)一次性裝入到原理立方體中建立物理Cube,這些特征變動量少、查詢量大。虛擬Cube事前并不建立任何Cube,而是根據(jù)用戶需求實(shí)時生成虛擬立方體,方便對于實(shí)時數(shù)據(jù)的更新,如一定維度下事故發(fā)生頻率。使用靈活但網(wǎng)絡(luò)負(fù)載大。如圖5
3.3 驗(yàn)證
數(shù)據(jù)倉庫就是決策支持系統(tǒng)和聯(lián)機(jī)分析應(yīng)用數(shù)據(jù)源的結(jié)構(gòu)化數(shù)據(jù)環(huán)境。為了給用戶提供更清晰、簡潔、易于理解和操作的界面,我們做了表單、報(bào)表和各種圖形來顯示我們的數(shù)據(jù),并提供一定的CRUD功能。把移動設(shè)備用戶的上傳消息根據(jù)地理位置聚類,對區(qū)域中有明顯消息增加的地點(diǎn)做實(shí)時的線狀圖顯示,當(dāng)曲線的到達(dá)一定斜度,便生成提示信息,警告管理人員。如圖6。根據(jù)單位時間類事故發(fā)生的頻率作了統(tǒng)計(jì)分析,如圖7。選擇查看地點(diǎn)維度,如選取城市維度,發(fā)現(xiàn)paiva事故發(fā)生率高于napol。選擇時間維度觀測到pavia下午4點(diǎn)的問題發(fā)生率是全天最高。
圖6 檢測儀表
圖7 事故分析圖
4 結(jié)束語
本文提出一種較靈活的ETL方式,該方式采用手工編碼與Kettle工具相互協(xié)作,以元數(shù)據(jù)為驅(qū)動對于多種異構(gòu)數(shù)據(jù)源進(jìn)行整合利用,從數(shù)據(jù)源的記錄、抽取規(guī)則、多維數(shù)據(jù)庫模型等全程監(jiān)視,為數(shù)據(jù)倉庫提供更加全面、更加豐富的源數(shù)據(jù),并以報(bào)表、數(shù)據(jù)圖和儀表的形式展示在web端。管理人員可以及時地檢測到事故的發(fā)生,也可以對區(qū)域的問題進(jìn)行總結(jié)分析,做出有效的預(yù)防工作。進(jìn)行數(shù)據(jù)挖據(jù)和BI分析,最大限度的利用好企業(yè)的大量數(shù)據(jù)。
參考文獻(xiàn)
[1]Inmon W H (2005) Building the data warehouse.Fourth Edition,Wiley.
[2]P.Vassiliadis,A. Simitsis,and S.Skiadopoulos,Conceptual modeling for ETL processes,Proc.5th ACM Intl. Workshop on Data Warehousing and OLAP (DOLAP),pp.14-21,2002.
[3]J.Trujillo and S. Lujan-Mora.“A UML Based Approach for Modelling ETL Processes in Data Warehouses”.In I.-Y.Song,S.W.Liddle,T. W. Ling,and P. Scheuermann,editors,ER,volume 2813 of Lecture Notes in Computer science,Springer,2003.
[4]Gianmario Motta,Thiago Barroero,Giovanni Miceli and Yuwei Yin. “Design of performance aware service systems: A Case study”. Service Sciences (IJCSS),2011 International Joint Conference on. 25-27 May 2011.
[5]Selmeci,A.Orosz,T.“SAP remote communications”.Applied Computational Intelligence and Informatics (SACI),2012 7th IEEE International Symposium on.