[摘要] 中國(guó)村鎮(zhèn)應(yīng)急服務(wù)的系統(tǒng)亟待建設(shè)。村鎮(zhèn)應(yīng)急數(shù)據(jù)來(lái)源廣泛,種類繁多,資料格式?jīng)]有歸一化,很難在災(zāi)害發(fā)生時(shí)起到直接的決策支持的作用。因此需要將這些數(shù)據(jù)進(jìn)行集成與分析,為決策者提供支持。本文研究了村鎮(zhèn)應(yīng)急服務(wù)中的信息來(lái)源和主題,并分析了OLAP在村鎮(zhèn)應(yīng)急服務(wù)中的決策支持作用,并以森林火災(zāi)應(yīng)急服務(wù)系統(tǒng)為例加以闡述。基于數(shù)據(jù)源創(chuàng)建了多維數(shù)據(jù)集。而不同的主題需要構(gòu)建不同的多維數(shù)據(jù)集,多維數(shù)據(jù)集來(lái)源于數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)?;谏鲜鲂枨?,以SQL Server 2005集成服務(wù)的API為基礎(chǔ),開(kāi)發(fā)了ETL工具,可以完成基礎(chǔ)的數(shù)據(jù)抽取、清洗及裝載工作。
[關(guān)鍵詞] 村鎮(zhèn);數(shù)據(jù)集成;OLAP;應(yīng)急
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2011 . 23. 023
[中圖分類號(hào)]TP392;D630 [文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1673 - 0194(2011)23- 0047- 04
0引言
中國(guó)是自然災(zāi)害多發(fā)國(guó)家,自然災(zāi)害一旦發(fā)生就可以導(dǎo)致社會(huì)經(jīng)濟(jì)系統(tǒng)失衡,社會(huì)財(cái)產(chǎn)產(chǎn)生損失,社會(huì)資源出現(xiàn)嚴(yán)重的供需不平衡[1]。當(dāng)大型自然災(zāi)害發(fā)生時(shí),就需要國(guó)家對(duì)災(zāi)區(qū)進(jìn)行資源的調(diào)度與分配。本文以森林火災(zāi)應(yīng)急服務(wù)系統(tǒng)為例,討論村鎮(zhèn)服務(wù)信息的OLAP和數(shù)據(jù)集成問(wèn)題。
森林火災(zāi)應(yīng)急服務(wù)數(shù)據(jù)的內(nèi)容涉及森林火災(zāi)監(jiān)測(cè)、火險(xiǎn)預(yù)報(bào)、災(zāi)后評(píng)估等方面。同時(shí),作為現(xiàn)代村鎮(zhèn)應(yīng)急公共服務(wù)系統(tǒng)的子系統(tǒng),其需要將區(qū)域內(nèi)的救災(zāi)物資、避難設(shè)施、道路通訊等數(shù)據(jù)一同集成至數(shù)據(jù)庫(kù),以供決策者直接查看,解決物資與糧食的資源調(diào)度問(wèn)題。同時(shí),數(shù)據(jù)庫(kù)及數(shù)據(jù)倉(cāng)庫(kù)的構(gòu)建對(duì)未來(lái)整個(gè)現(xiàn)代村鎮(zhèn)應(yīng)急公共服務(wù)框架中更深層次的數(shù)據(jù)挖掘、OLAP等服務(wù),也起到重要的作用。
1應(yīng)急數(shù)據(jù)分析
森林火災(zāi)應(yīng)急服務(wù)系統(tǒng),是指在火災(zāi)發(fā)生以后,或火災(zāi)預(yù)報(bào)發(fā)布以后,為相關(guān)部門開(kāi)展對(duì)火災(zāi)發(fā)生地區(qū)的一系列應(yīng)急救援活動(dòng)提供所需了解和掌握的各種社會(huì)基本信息的一種數(shù)據(jù)庫(kù)。這個(gè)系統(tǒng)是現(xiàn)代村鎮(zhèn)應(yīng)急公共服務(wù)系統(tǒng)的子系統(tǒng),通過(guò)網(wǎng)絡(luò)接口從火災(zāi)監(jiān)測(cè)部門獲取監(jiān)測(cè)數(shù)據(jù)。監(jiān)測(cè)部門發(fā)布警報(bào)或預(yù)報(bào)信息后,通過(guò)對(duì)數(shù)據(jù)庫(kù)中信息的查詢、對(duì)比、分析,向決策者提供數(shù)據(jù)[2]。
數(shù)據(jù)庫(kù)內(nèi)容主要包括:
(1)地圖地理類。
(2)公共服務(wù)信息類。包括應(yīng)急救援時(shí)使用的物資、人力資源、避難所等信息。
(3)災(zāi)害信息類。災(zāi)害相關(guān)數(shù)據(jù)表。
(4)公共設(shè)施類。戰(zhàn)略要害部位、生命線工程、次生災(zāi)害源等。
(5)組織結(jié)構(gòu)類。撲火組織登記表、撲火設(shè)備登記表、撲火設(shè)備使用情況表。
這些信息來(lái)源于不同部門如地震部門、林業(yè)部門、氣象部門的專業(yè)數(shù)據(jù)庫(kù),或者政府、醫(yī)院、學(xué)校等部門的資料,涉及部門多,涉及范圍廣,在數(shù)據(jù)的收集和整理的工作中,很多資料因?yàn)闆](méi)有電子化,可能需要手工輸入,這樣就給數(shù)據(jù)庫(kù)建設(shè)帶來(lái)很大的難度。數(shù)據(jù)的來(lái)源可能是多種多樣的,這與不同部門在歷史過(guò)程中存儲(chǔ)數(shù)據(jù)使用的介質(zhì)有關(guān)。電子政務(wù)雖然在我國(guó)已經(jīng)發(fā)展了一段時(shí)間,但各種紙質(zhì)文檔在歷史資料中仍然占有很大的比重。數(shù)據(jù)不公開(kāi)、不共享和數(shù)據(jù)屬性不一致也是各個(gè)單位之間數(shù)據(jù)和資料流通中的存在問(wèn)題。而同一單位中的不同部門也可能會(huì)使用不同的數(shù)據(jù)存儲(chǔ)技術(shù)存儲(chǔ)操作數(shù)據(jù),可能存儲(chǔ)在不同架構(gòu)的數(shù)據(jù)庫(kù)中。因此,在基礎(chǔ)數(shù)據(jù)的提取、轉(zhuǎn)換和加載過(guò)程中,需要按照一個(gè)統(tǒng)一的標(biāo)準(zhǔn)將多源異構(gòu)數(shù)據(jù)整合到一個(gè)實(shí)時(shí)數(shù)據(jù)庫(kù)中,再經(jīng)過(guò)轉(zhuǎn)換存儲(chǔ)至數(shù)據(jù)倉(cāng)庫(kù),為后續(xù)的OLAP分析及數(shù)據(jù)挖掘提供基礎(chǔ)。
2森林火災(zāi)OLAP模型
OLAP(On-Line Analytical Processing,聯(lián)機(jī)分析處理),最早是由關(guān)系數(shù)據(jù)庫(kù)之父E.F.Codd于1933年提出的。OLAP是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的主要應(yīng)用,支持復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。OLAP的核心技術(shù)是概念:“維”。
“維”是人們觀察客觀世界的角度和立場(chǎng),是一種高層次的類型劃分?!熬S”一般包含著層次關(guān)系,這種層次關(guān)系有時(shí)會(huì)相當(dāng)復(fù)雜。通過(guò)把一個(gè)實(shí)體的多項(xiàng)重要的屬性定義為多個(gè)維(Dimension),使用戶能對(duì)不同“維”上的數(shù)據(jù)進(jìn)行比較。因此OLAP也可以說(shuō)是多維數(shù)據(jù)分析工具的集合。OLAP工具針對(duì)特定問(wèn)題進(jìn)行聯(lián)機(jī)數(shù)據(jù)訪問(wèn)與分析。它通過(guò)多維的方式對(duì)數(shù)據(jù)進(jìn)行分析、查詢和報(bào)表。維是人們觀察數(shù)據(jù)的特定角度。多維分析是指對(duì)以多維形式組織起來(lái)的數(shù)據(jù)采取切片(Slice)、切塊(Dice)、鉆取(Drill-down和Roll-up)、旋轉(zhuǎn)(Pivot)等各種分析動(dòng)作,以求剖析數(shù)據(jù),使用戶能從多個(gè)角度、多側(cè)面地觀察數(shù)據(jù)庫(kù)中的數(shù)據(jù),從而深入理解包含在數(shù)據(jù)中的信息[3]。
根據(jù)數(shù)據(jù)組織方式的不同,目前常見(jiàn)的OLAP主要有基于多維數(shù)據(jù)庫(kù)的MOLAP和基于關(guān)系數(shù)據(jù)庫(kù)的ROLAP兩種。MOLAP是以多維的方式組織和存儲(chǔ)數(shù)據(jù),ROLAP則利用現(xiàn)有的關(guān)系數(shù)據(jù)庫(kù)技術(shù)來(lái)模擬多維數(shù)據(jù)。在數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用中,OLAP應(yīng)用一般是數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用的前端工具,同時(shí)OLAP工具還可以與數(shù)據(jù)挖掘工具、統(tǒng)計(jì)分析工具配合使用,增強(qiáng)決策分析功能。
在村鎮(zhèn)服務(wù)信息中,數(shù)據(jù)種類多,數(shù)據(jù)復(fù)雜,進(jìn)行的數(shù)據(jù)分析類型很多。因此在多維數(shù)據(jù)集的定義中,需要定義若干不同的主題來(lái)描述數(shù)據(jù),并進(jìn)行決策支持。根據(jù)需求,定義物資存儲(chǔ)數(shù)據(jù)分析、物資流通數(shù)據(jù)分析、災(zāi)害數(shù)據(jù)分析、物資使用情況分析等不同主題。
(1)物資存儲(chǔ)數(shù)據(jù)分析:物資存放地點(diǎn)的物資存儲(chǔ)量以及歷史變化。
(2)物資流通數(shù)據(jù)分析:物資流通過(guò)程中的流量數(shù)據(jù)。
(3)災(zāi)害數(shù)據(jù)分析:災(zāi)害相關(guān)的數(shù)據(jù)統(tǒng)計(jì)分析等。
(4)物資使用情況:不同災(zāi)害條件下的物資使用量。
(5)其他相關(guān)主題。
根據(jù)主題的不同需要,從數(shù)據(jù)倉(cāng)庫(kù)中抽取數(shù)據(jù)形成多維數(shù)據(jù)集(Cube),之后通過(guò)展現(xiàn)工具如Excel,Crystal Report或OWC等向使用者展示決策支持?jǐn)?shù)據(jù)。
以森林火災(zāi)數(shù)據(jù)分析為例,其主題包含森林火災(zāi)損失數(shù)據(jù)分析。實(shí)現(xiàn)的目標(biāo)是查看不同地區(qū)發(fā)生的火災(zāi)所造成的物資及人員損失情況,根據(jù)損失程度的級(jí)別不同決定是否加強(qiáng)火災(zāi)損失較大地區(qū)防火的力度。
這項(xiàng)業(yè)務(wù)分析可從不同角度對(duì)火災(zāi)發(fā)生次數(shù)、火災(zāi)等級(jí)程度、傷亡人員數(shù)等進(jìn)行分析,并比較指定變化周期內(nèi)的區(qū)別,對(duì)極易發(fā)生災(zāi)害的地區(qū)可以更加關(guān)注,實(shí)現(xiàn)預(yù)警功能,并進(jìn)行原因和影響分析。
3ETL工具設(shè)計(jì)與實(shí)現(xiàn)
3.1 異構(gòu)數(shù)據(jù)轉(zhuǎn)換
ETL工具起到兩方面的作用:一方面可以構(gòu)成數(shù)據(jù)倉(cāng)庫(kù),另一方面可以構(gòu)成多維數(shù)據(jù)集,支持OLAP操作。目前異構(gòu)數(shù)據(jù)的轉(zhuǎn)換方法很多,不同定位的廠商也提供了不同的相對(duì)綜合的數(shù)據(jù)集成產(chǎn)品。使用現(xiàn)有的數(shù)據(jù)集成產(chǎn)品的優(yōu)點(diǎn)在于穩(wěn)定和方便,但對(duì)于目前系統(tǒng)中來(lái)源表的不確定性而言,如果每次集成數(shù)據(jù)時(shí)重新設(shè)計(jì)并掛接新的包在系統(tǒng)之中,會(huì)浪費(fèi)開(kāi)發(fā)人員的時(shí)間,整個(gè)系統(tǒng)的靈活性也隨之降低。因此需要自行開(kāi)發(fā)一個(gè)數(shù)據(jù)集成平臺(tái),根據(jù)用戶的不同需要將所需的數(shù)據(jù)表集成到目標(biāo)數(shù)據(jù)庫(kù)當(dāng)中。
異構(gòu)數(shù)據(jù)集成的分布式對(duì)象技術(shù)包括COM、EJB和CORBA等多種技術(shù)。CORBA的互操作性和開(kāi)放性非常好,但開(kāi)發(fā)難度大。EJB框架基于Java服務(wù)器端組件模型,跨平臺(tái)性很好,互操作性不好。COM技術(shù)是微軟推出的比較完整的平臺(tái),有相應(yīng)的開(kāi)發(fā)工具支持,開(kāi)發(fā)相對(duì)簡(jiǎn)單,效率高,不足之處是跨平臺(tái)性差[4]。
對(duì)于現(xiàn)代村鎮(zhèn)應(yīng)急公共服務(wù)系統(tǒng)的數(shù)據(jù)集成開(kāi)發(fā)問(wèn)題,選用COM技術(shù)是比較合適的。因?yàn)槲覈?guó)的計(jì)算機(jī)普遍采用Windows操作系統(tǒng),跨平臺(tái)問(wèn)題涉及程度較低。同時(shí),同為微軟公司的產(chǎn)品,在穩(wěn)定性和安全性上更有保障。結(jié)合項(xiàng)目的特點(diǎn),我們選用COM組件技術(shù)來(lái)解決異構(gòu)數(shù)據(jù)集成。
OLE DB是微軟提供的一個(gè)底層的數(shù)據(jù)訪問(wèn)接口,目的是提供一種統(tǒng)一的數(shù)據(jù)訪問(wèn)接口。OLE DB對(duì)所有文件系統(tǒng)包括關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)都提供了統(tǒng)一的接口,是符合COM標(biāo)準(zhǔn)、基于對(duì)象的。OLE DB標(biāo)準(zhǔn)的核心內(nèi)容就是要求各種各樣的數(shù)據(jù)存儲(chǔ)(Data Store)都提供一種相同的訪問(wèn)接口,使得數(shù)據(jù)的使用者(應(yīng)用程序)可以使用同樣的方法訪問(wèn)各種數(shù)據(jù),而不用考慮數(shù)據(jù)的具體存儲(chǔ)地點(diǎn)、格式或類型。這些特性使得OLE DB技術(shù)比ODBC技術(shù)更加優(yōu)越。目前,OLE DB技術(shù)包括一個(gè)ODBC提供程序(ODBC OLE DB Provider),它通過(guò)任何ODBC驅(qū)動(dòng)程序現(xiàn)實(shí)OLE DB對(duì)象[5]。
OLE DB將傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)劃分為多個(gè)邏輯組件,這些組件之間相對(duì)獨(dú)立又相互通信[6]:
數(shù)據(jù)提供者(Data Provider):提供數(shù)據(jù)存儲(chǔ)的軟件組織,普通的文本文件或是復(fù)雜的數(shù)據(jù)庫(kù),或者是電子郵件存儲(chǔ),都可以作為數(shù)據(jù)提供者。
數(shù)據(jù)服務(wù)提供者(Data Service Provider):是位于數(shù)據(jù)提供者之上,從過(guò)去的數(shù)據(jù)庫(kù)管理系統(tǒng)中分離出來(lái)、獨(dú)立運(yùn)行的功能組件,這些組件使得數(shù)據(jù)提供者提供的數(shù)據(jù)以表狀數(shù)據(jù)的形式向外表示,而不去理會(huì)真實(shí)的物理數(shù)據(jù)的存儲(chǔ)和組織形式,并實(shí)現(xiàn)數(shù)據(jù)的查詢和修改功能。
數(shù)據(jù)消費(fèi)者(Data Consumer):任何需要訪問(wèn)數(shù)據(jù)的系統(tǒng)程序或應(yīng)用程序,除了典型的數(shù)據(jù)庫(kù)應(yīng)用程序之外,還包括需要訪問(wèn)各種數(shù)據(jù)源的開(kāi)發(fā)工具或語(yǔ)言。
業(yè)務(wù)組件(Business Component):利用數(shù)據(jù)服務(wù)提供者,專門完成某種特定業(yè)務(wù)信息處理,可以重用的功能組件。
通過(guò)以上組件,可以設(shè)計(jì)基于OLE DB的數(shù)據(jù)交互平臺(tái),數(shù)據(jù)使用者不需要知道數(shù)據(jù)源的具體應(yīng)用,只需要通過(guò)與OLE DB接口交互,即可取得所要查詢的數(shù)據(jù),從接口中取出數(shù)據(jù)并使用。這樣簡(jiǎn)化了程序的設(shè)計(jì),并且可以屏蔽數(shù)據(jù)的異構(gòu)性。
3.2 異構(gòu)數(shù)據(jù)源集成
現(xiàn)代村鎮(zhèn)應(yīng)急公共服務(wù)平臺(tái)使用的數(shù)據(jù)庫(kù)為SQL Server 2005,利用SQL Server 2005的集成服務(wù)(Integration Service)提供的API,對(duì)各種異構(gòu)數(shù)據(jù)源建立映射,從而構(gòu)建異構(gòu)多數(shù)據(jù)庫(kù)系統(tǒng)的方案。SSIS是用于生成高性能數(shù)據(jù)集成和工作流解決方案的平臺(tái),包括針對(duì)數(shù)據(jù)倉(cāng)庫(kù)的提取、轉(zhuǎn)換和加載(ETL)操作,提供一些支持業(yè)務(wù)應(yīng)用程序開(kāi)發(fā)的內(nèi)置任務(wù)、容器、轉(zhuǎn)換和數(shù)據(jù)適配器,這些元素都在包(Package)中。雖然SQL Server 2005提供的工具箱組件可以滿足大部分用戶的使用需求,但靈活性不高,比較適合全局型的數(shù)據(jù)集成。本文研究的數(shù)據(jù)為聯(lián)邦型數(shù)據(jù),各個(gè)局部數(shù)據(jù)庫(kù)通過(guò)定義輸入/輸出模式進(jìn)行彼此之間的數(shù)據(jù)訪問(wèn),因此無(wú)法使用固定的包,需根據(jù)不同的情況創(chuàng)建包。因此我們使用SSIS提供的編程API,自主創(chuàng)建包。流程如圖1所示。
4結(jié)論
目前已經(jīng)開(kāi)發(fā)的軟件可以將平面文件、Access數(shù)據(jù)庫(kù)以及SQL Server 2005數(shù)據(jù)庫(kù)作為數(shù)據(jù)源,SQL Server 2005作為數(shù)據(jù)目標(biāo),生成初步數(shù)據(jù)轉(zhuǎn)換包,進(jìn)而形成構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的基礎(chǔ),為OLAP做數(shù)據(jù)準(zhǔn)備工作。不足之處在于,尚未構(gòu)成完整的現(xiàn)代村鎮(zhèn)應(yīng)急數(shù)據(jù)的框架體系,無(wú)法構(gòu)建完整的數(shù)據(jù)倉(cāng)庫(kù),也無(wú)法完成針對(duì)不同主題的多維數(shù)據(jù)集的設(shè)計(jì)。另外,軟件作為一個(gè)ETL工具,很多功能尚不完善。未來(lái)將針對(duì)這兩方面問(wèn)題加以改進(jìn)。
主要參考文獻(xiàn)
[1]彭珂珊. 我國(guó)主要自然災(zāi)害的類型及特點(diǎn)分析[J]. 北京聯(lián)合大學(xué)學(xué)報(bào):自然科學(xué)版,2000(3):59-65.
[2]曹丹. 森林防火輔助決策系統(tǒng)設(shè)計(jì)研究[J]. 電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2009,5(13):3426-3427.
[3]覃先林, 張子輝, 易浩若. 森林火災(zāi)數(shù)據(jù)整合及共享方法研究[J]. 西北農(nóng)林科技大學(xué)學(xué)報(bào):自然科學(xué)版, 2007, 35(6): 46-50.
[4][美]Brian Knight, Erik Veerman.SQL Server 2005 Integration Services專家教程[M].馮飛,譯. 北京: 清華大學(xué)出版社,2008.
[5]田輝. 基于OLE DB技術(shù)的異構(gòu)數(shù)據(jù)集成研究[D].天津:河北工業(yè)大學(xué),2005.
[6]陳繼東. 異構(gòu)數(shù)據(jù)源集成及轉(zhuǎn)換方法研究與實(shí)現(xiàn)[D].南充:西南石油學(xué)院,2003.