吳 政,李成名,武鵬達(dá),沈建明,孫 偉
中國(guó)測(cè)繪科學(xué)研究院GIS所,北京 100830
?
Oracle數(shù)據(jù)庫(kù)矢柵數(shù)據(jù)一體化存儲(chǔ)與管理
吳 政,李成名,武鵬達(dá),沈建明,孫 偉
中國(guó)測(cè)繪科學(xué)研究院GIS所,北京 100830
當(dāng)前多源異構(gòu)空間數(shù)據(jù)存儲(chǔ)和管理存在流轉(zhuǎn)難度大、存儲(chǔ)不統(tǒng)一、效率不高等問(wèn)題。本文將關(guān)系數(shù)據(jù)庫(kù)與空間數(shù)據(jù)引擎技術(shù)結(jié)合,提出了一種基于Oracle的面向?qū)ο蟮氖笘艛?shù)據(jù)一體化存儲(chǔ)與管理方法。該方法首先建立了矢柵一體化存儲(chǔ)模型并優(yōu)化了檢索方法,然后據(jù)此構(gòu)建了數(shù)據(jù)無(wú)縫流轉(zhuǎn)框架,實(shí)現(xiàn)了多源異構(gòu)矢柵數(shù)據(jù)的統(tǒng)一存儲(chǔ)與高效管理。通過(guò)與國(guó)際領(lǐng)先的同類軟件ArcSDE進(jìn)行測(cè)試對(duì)比,該方法具有更高的數(shù)據(jù)流轉(zhuǎn)性能及更優(yōu)的查詢檢索效率。
多源異構(gòu)空間數(shù)據(jù);矢柵一體化存儲(chǔ);檢索優(yōu)化;數(shù)據(jù)流轉(zhuǎn)
隨著空間地理信息技術(shù)的不斷發(fā)展,獲取地理空間信息的手段不斷豐富,地理空間數(shù)據(jù)呈現(xiàn)出數(shù)據(jù)來(lái)源多樣化、數(shù)據(jù)模型差異化、數(shù)據(jù)存儲(chǔ)分散化、空間關(guān)系復(fù)雜化、數(shù)量海量化等特點(diǎn)[1-2],在此情形下,如何高效地存儲(chǔ)、組織、管理多源異構(gòu)的空間數(shù)據(jù)逐漸成為地理信息系統(tǒng)考慮的核心問(wèn)題。
以數(shù)據(jù)、應(yīng)用為導(dǎo)向的各種空間數(shù)據(jù)庫(kù)技術(shù)、空間數(shù)據(jù)引擎技術(shù)、分布式存儲(chǔ)管理技術(shù)在一定程度上或從某一方面有效地解決了地理空間數(shù)據(jù)存儲(chǔ)和管理的問(wèn)題。目前,國(guó)內(nèi)廣泛使用的數(shù)據(jù)庫(kù)主要集中在以O(shè)racle為代表的“擴(kuò)展對(duì)象關(guān)系型數(shù)據(jù)庫(kù)”、“空間數(shù)據(jù)引擎”兩方面。然而,多年的數(shù)據(jù)庫(kù)建設(shè)涌現(xiàn)了種類繁多、架構(gòu)各異的GIS系統(tǒng),多源異構(gòu)的空間數(shù)據(jù)出現(xiàn)難以共享、遷移效率低、流轉(zhuǎn)難度大、互操作難以實(shí)現(xiàn)等問(wèn)題?;诖?,本文針對(duì)矢量與柵格數(shù)據(jù)這兩種主要的空間數(shù)據(jù)結(jié)構(gòu),提出一種基于Oracle的面向?qū)ο蟮氖笘乓惑w化管理方法,建立了矢柵數(shù)據(jù)一體化存儲(chǔ)模型,優(yōu)化了矢柵數(shù)據(jù)的檢索方法,并據(jù)此設(shè)計(jì)了多源異構(gòu)數(shù)據(jù)流轉(zhuǎn)框架,達(dá)到對(duì)空間數(shù)據(jù)進(jìn)行統(tǒng)一存儲(chǔ)、統(tǒng)一訪問(wèn)、統(tǒng)一管理的目的。
針對(duì)多源異構(gòu)矢柵數(shù)據(jù)的存儲(chǔ)、組織、管理與發(fā)布等問(wèn)題,國(guó)內(nèi)外已經(jīng)有了大量的研究成果,主要分為三大類[3-6]:第一類是以傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)為代表,直接對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行擴(kuò)展,實(shí)現(xiàn)矢柵數(shù)據(jù)存儲(chǔ)與管理功能;第二類是基于傳統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)開(kāi)發(fā)空間數(shù)據(jù)引擎,以獲得傳統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)功能之外的矢柵數(shù)據(jù)存儲(chǔ)和管理能力;第三類是基于分布式文件系統(tǒng)構(gòu)建非關(guān)系型(NoSQL)數(shù)據(jù)庫(kù),在分布式并行計(jì)算框架下進(jìn)行數(shù)據(jù)處理。
1.1 基于擴(kuò)展對(duì)象的關(guān)系型數(shù)據(jù)庫(kù)
該類關(guān)系型數(shù)據(jù)庫(kù)通過(guò)對(duì)自身的數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行擴(kuò)展,使之能直接存儲(chǔ)和管理非結(jié)構(gòu)化的矢柵數(shù)據(jù),如Oracle公司的Oracle Spatial、Oracle GeoRaster、Postgres SQL的PostGIS、IBM公司的DB2 Spatial Extender、Informix的Spatial DataBlade等。這些傳統(tǒng)的數(shù)據(jù)庫(kù)產(chǎn)品其技術(shù)成熟穩(wěn)定,在各行業(yè)應(yīng)用范圍廣、用戶數(shù)量多、運(yùn)行的周期長(zhǎng),基于其部署的應(yīng)用系統(tǒng)數(shù)量和規(guī)模巨大,其中以O(shè)racle應(yīng)用最為廣泛。
該類數(shù)據(jù)存儲(chǔ)的共同問(wèn)題是需要將空間幾何信息轉(zhuǎn)化為各自擴(kuò)展模塊內(nèi)部專有的存儲(chǔ)對(duì)象,數(shù)據(jù)存儲(chǔ)模型的差異導(dǎo)致無(wú)法直接與其他數(shù)據(jù)源或數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)共享或互操作,需要通過(guò)中間件進(jìn)行矢柵數(shù)據(jù)格式的轉(zhuǎn)換,不具有普適性。如Oracle為矢量數(shù)據(jù)提供了Oracle Spatial擴(kuò)展模塊[7],為柵格數(shù)據(jù)提供了GeoRaster擴(kuò)展模塊[8],都需要將空間幾何信息轉(zhuǎn)換為其對(duì)應(yīng)的內(nèi)部存儲(chǔ)對(duì)象,不利于共享和互操作;同時(shí),GeoRaster在柵格數(shù)據(jù)管理方面也存在限制:如柵格數(shù)據(jù)導(dǎo)出格式的限制,單次柵格數(shù)據(jù)導(dǎo)出大小的限制,柵格數(shù)據(jù)存取時(shí)需要借助第三方工具等。
1.2 基于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的空間數(shù)據(jù)引擎
空間數(shù)據(jù)引擎是基于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)開(kāi)發(fā)的支持空間數(shù)據(jù)的中間件,采用的是客戶/服務(wù)器體系結(jié)構(gòu),應(yīng)用程序通過(guò)空間數(shù)據(jù)引擎構(gòu)建矢柵數(shù)據(jù)模型,將數(shù)據(jù)交給數(shù)據(jù)庫(kù)統(tǒng)一管理,具有代表性的是ESRI的ArcSDE、MapInfo的Spatial-Ware、MAP GIS的MapGIS SDE、超圖的SuperMap SDX等,其中基于ArcSDE應(yīng)用開(kāi)發(fā)的案例最多,處于國(guó)際領(lǐng)先地位。
該類數(shù)據(jù)存儲(chǔ)的主要問(wèn)題是支持的數(shù)據(jù)源有限,在大批量的數(shù)據(jù)入庫(kù)及數(shù)據(jù)遷移時(shí)效率較低,同時(shí)其部署時(shí)需要在數(shù)據(jù)庫(kù)服務(wù)器端安裝相應(yīng)的SDE環(huán)境,對(duì)未通過(guò)SDE入庫(kù)的數(shù)據(jù)無(wú)法直接讀取,無(wú)形中增加了數(shù)據(jù)庫(kù)服務(wù)器端負(fù)荷,無(wú)法實(shí)現(xiàn)多源異構(gòu)數(shù)據(jù)的共享與數(shù)據(jù)的流轉(zhuǎn)。
1.3 基于分布式文件系統(tǒng)的非關(guān)系型數(shù)據(jù)庫(kù)
目前國(guó)內(nèi)外針對(duì)海量空間數(shù)據(jù)存儲(chǔ)和管理的研究主要集中在基于HBase、MongoDB等NoSQL數(shù)據(jù)庫(kù)構(gòu)建結(jié)構(gòu)化(Key-Value)存儲(chǔ)[9-10],實(shí)現(xiàn)對(duì)高分辨率遙感影像、海量矢量數(shù)據(jù)的管理。如文獻(xiàn)[11]提出了一種海量空間數(shù)據(jù)處理并行框架(IDEA),可以有效地分配數(shù)據(jù)服務(wù)和計(jì)算節(jié)點(diǎn),實(shí)現(xiàn)任務(wù)的有效調(diào)度;文獻(xiàn)[12]提出了基于整合的Hadoop和Eucalyptus云平臺(tái)的高分辨率遙感影像存儲(chǔ)模型C-RSM;文獻(xiàn)[13]基于MongoDB和Hadoop架構(gòu),設(shè)計(jì)并實(shí)現(xiàn)了矢量空間數(shù)據(jù)云存儲(chǔ)與處理系統(tǒng)VectorDB,達(dá)到了海量矢量數(shù)據(jù)的高效存儲(chǔ)與處理要求。
盡管很多學(xué)者基于非關(guān)系型數(shù)據(jù)庫(kù)提出了空間數(shù)據(jù)管理的方案,但在商業(yè)化應(yīng)用中使用的并不多,原因包括:針對(duì)矢量數(shù)據(jù)的分布式存儲(chǔ)、空間操作的分布式處理等技術(shù)并不完善;對(duì)多源異構(gòu)數(shù)據(jù)還無(wú)法提供充足的支持;對(duì)于如何集成已存在于關(guān)系型數(shù)據(jù)庫(kù)中的空間數(shù)據(jù),還未有很好的解決方案。
為了將矢柵數(shù)據(jù)及其屬性數(shù)據(jù)、元數(shù)據(jù)等進(jìn)行統(tǒng)一存儲(chǔ)和管理,便于數(shù)據(jù)遷移、流轉(zhuǎn),利于共享,本文根據(jù)“異構(gòu)同化,同構(gòu)整體化”的思想[14-16]以及多空間數(shù)據(jù)庫(kù)系統(tǒng)、分布式數(shù)據(jù)庫(kù)系統(tǒng)的模式結(jié)構(gòu)[17-19],遵循數(shù)據(jù)遠(yuǎn)程存取、數(shù)據(jù)操作本地化、兼容多源異構(gòu)數(shù)據(jù)的原則[20-21],采用C/S體系架構(gòu),提出基于Oracle的矢柵數(shù)據(jù)一體化存儲(chǔ)與管理方法,用以實(shí)現(xiàn)分布式系統(tǒng)多源異構(gòu)信息的集成,其體系架構(gòu)如圖1所示。
圖1 矢柵數(shù)據(jù)管理總體架構(gòu)Fig.1 Overall framework of vector and raster data management system
該架構(gòu)采用全局統(tǒng)一的空間數(shù)據(jù)模型來(lái)描述全局概念模式和分片模式[14],實(shí)現(xiàn)局部概念模式到全局分片模式的轉(zhuǎn)換,并提供統(tǒng)一的訪問(wèn)接口、統(tǒng)一的空間查詢語(yǔ)言和統(tǒng)一的用戶交互界面,將分布式的異構(gòu)矢柵數(shù)據(jù)存儲(chǔ)在各Oracle節(jié)點(diǎn)中,實(shí)現(xiàn)了矢柵數(shù)據(jù)在各數(shù)據(jù)庫(kù)節(jié)點(diǎn)之間的無(wú)縫流轉(zhuǎn)。參照文獻(xiàn)[14]中提出的分布式多空間數(shù)據(jù)庫(kù)的集成模型,本文設(shè)計(jì)了矢柵數(shù)據(jù)存儲(chǔ)和管理的5層層次模型(圖1)。
空間數(shù)據(jù)引擎包含數(shù)據(jù)發(fā)現(xiàn)、數(shù)據(jù)訪問(wèn)和數(shù)據(jù)集成3層。數(shù)據(jù)發(fā)現(xiàn)層主要解決矢柵數(shù)據(jù)的獲取問(wèn)題,即通過(guò)管理矢柵數(shù)據(jù)的存儲(chǔ)位置、格式、獲取及使用方法等元數(shù)據(jù)信息,為數(shù)據(jù)引擎提供獲取數(shù)據(jù)的途徑;數(shù)據(jù)訪問(wèn)層主要解決局部異構(gòu)矢柵數(shù)據(jù)的轉(zhuǎn)換問(wèn)題,即實(shí)現(xiàn)矢柵數(shù)據(jù)“異構(gòu)同化”,將異構(gòu)的局部矢柵數(shù)據(jù)模型轉(zhuǎn)換為全局統(tǒng)一的矢柵數(shù)據(jù)模型,存儲(chǔ)在相應(yīng)的Oracle節(jié)點(diǎn)中,是數(shù)據(jù)引擎實(shí)現(xiàn)的關(guān)鍵;數(shù)據(jù)集成層主要解決“物理分布、邏輯統(tǒng)一”的問(wèn)題,即在不同Oracle節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)在邏輯操作上表現(xiàn)為一個(gè)整體,達(dá)到“同構(gòu)整體化”,實(shí)現(xiàn)多圖層、多數(shù)據(jù)源的疊加和聚合。其余2層為數(shù)據(jù)目錄層和用戶訪問(wèn)層。數(shù)據(jù)目錄層主要用于實(shí)現(xiàn)數(shù)據(jù)資源的集中管理;用戶訪問(wèn)層主要解決用戶統(tǒng)一、透明訪問(wèn)。元數(shù)據(jù)數(shù)據(jù)庫(kù)主要存儲(chǔ)了用戶訪問(wèn)控制信息、數(shù)據(jù)目錄信息、數(shù)據(jù)訪問(wèn)控制信息等,為上述5層層次模型提供相關(guān)元數(shù)據(jù)信息。
3.1 矢量數(shù)據(jù)存儲(chǔ)與索引方法
本文對(duì)矢量數(shù)據(jù)的空間幾何信息的存儲(chǔ)支持兩種方式:一種是采用Oracle Spatial擴(kuò)展模塊,將空間幾何信息轉(zhuǎn)化為SDO_GEOMETRY對(duì)象進(jìn)行存儲(chǔ);另一種是以WKB的形式存儲(chǔ)在BLOB對(duì)象中。
采用Oracle Spatial擴(kuò)展模塊管理矢量空間數(shù)據(jù)需要對(duì)SDO_GEOM_METADATA(空間元數(shù)據(jù)表)、空間數(shù)據(jù)表進(jìn)行維護(hù)和操作。針對(duì)矢量空間數(shù)據(jù)以BLOB對(duì)象存取方式,本文設(shè)計(jì)了元數(shù)據(jù)表、矢量空間數(shù)據(jù)表、矢量空間索引表、空間參考表4類關(guān)系表,如圖2所示。其中,元數(shù)據(jù)表主要描述空間幾何類型、空間坐標(biāo)范圍、空間坐標(biāo)參考等基本信息,用于數(shù)據(jù)庫(kù)內(nèi)各空間數(shù)據(jù)基本信息的查詢;矢量空間數(shù)據(jù)表是空間數(shù)據(jù)的實(shí)際載體,包含空間數(shù)據(jù)唯一標(biāo)識(shí)、各屬性字段、幾何信息字段;矢量空間索引表主要描述每個(gè)要素的空間范圍信息,該邏輯關(guān)系表可以用作索引亦可用于創(chuàng)建四叉樹、R-Tree等空間索引或自定義索引;矢量空間參考表主要描述各種空間坐標(biāo)系的定義及描述,主要用于坐標(biāo)系統(tǒng)的轉(zhuǎn)換以及空間數(shù)據(jù)坐標(biāo)的校準(zhǔn)和查詢,其包括坐標(biāo)系統(tǒng)類型、坐標(biāo)系統(tǒng)的定義。
圖2 矢量數(shù)據(jù)存儲(chǔ)關(guān)系Fig.2 Vector data storage relation
為了提高索引機(jī)制的可擴(kuò)展性和靈活性,同時(shí)兼顧以SDO_GEOMETRY和BLOB存儲(chǔ)的情況,本文設(shè)計(jì)了基于Oracle的二級(jí)索引機(jī)制,可以有效兼容不同存儲(chǔ)方式的矢量數(shù)據(jù)檢索,如圖3所示:①對(duì)于采用以SDO_GEOMETRY存儲(chǔ)的空間數(shù)據(jù),建立空間索引后,可以直接對(duì)SDO_GEOMETRY對(duì)象進(jìn)行精確空間查詢;②對(duì)于以BLOB存儲(chǔ)的空間數(shù)據(jù),首先對(duì)矢量空間索引表或索引文件進(jìn)行空間查詢,初步篩選出要素標(biāo)識(shí)FID(feature identification)結(jié)果集,進(jìn)而依據(jù)空間過(guò)濾條件對(duì)提取的要素進(jìn)行空間幾何運(yùn)算,得出滿足空間過(guò)濾條件的對(duì)應(yīng)要素。
3.2 柵格數(shù)據(jù)存儲(chǔ)與索引方法
本文采用先按波段分層、再層內(nèi)分塊、最后構(gòu)建金字塔的思想,設(shè)計(jì)了具有支持多種柵格數(shù)據(jù)格式、易于遠(yuǎn)程存取、提取檢索快捷的存儲(chǔ)結(jié)構(gòu)。該結(jié)構(gòu)包括:提取柵格數(shù)據(jù)元數(shù)據(jù)信息,生成柵格元數(shù)據(jù)信息表;按照波段對(duì)柵格數(shù)據(jù)進(jìn)行抽取,并形成波段信息表;對(duì)每一波段進(jìn)行分塊,每一塊作為一個(gè)BLOB字段數(shù)據(jù)存儲(chǔ)在柵格數(shù)據(jù)表中;根據(jù)實(shí)際需求選擇適當(dāng)?shù)闹夭蓸铀惴?,生成影像金字塔,形成金字塔信息表;?duì)生成的金字塔數(shù)據(jù)采取上述類似方法,生成金字塔數(shù)據(jù)表,如圖4所示。
柵格數(shù)據(jù)存儲(chǔ)涉及的關(guān)系表如圖5所示,主要包括柵格信息表、波段信息表、金字塔信息表、柵格數(shù)據(jù)表、金字塔數(shù)據(jù)表,各表通過(guò)唯一標(biāo)識(shí)(RASTER_ID)進(jìn)行關(guān)聯(lián)。柵格信息表主要描述了柵格數(shù)據(jù)波段、像素、空間信息等元數(shù)據(jù)信息,便于對(duì)柵格數(shù)據(jù)的查詢、統(tǒng)計(jì)、存取以及格式轉(zhuǎn)換;金字塔信息表主要描述金字塔所屬波段號(hào)、金字塔級(jí)數(shù)以及構(gòu)建金字塔進(jìn)行塊采樣的大小等基本信息,主要用于金字塔信息的提取和查詢;柵格數(shù)據(jù)表主要描述柵格數(shù)據(jù)所屬的波段、所在波段中塊的位置、塊的空間范圍信息以及數(shù)據(jù)塊實(shí)體;金字塔數(shù)據(jù)表主要描述金字塔數(shù)據(jù)所屬波段、所屬級(jí)別、在該級(jí)別所屬塊位置、塊的空間范圍以及數(shù)據(jù)實(shí)體。本文提出的柵格數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)較完備地存儲(chǔ)了柵格數(shù)據(jù)的基本信息,可以方便地抽取波段信息、快速查找定位空間范圍內(nèi)的柵格數(shù)據(jù)。
圖3 矢量空間數(shù)據(jù)查詢Fig.3 Vector spatial data query
圖4 柵格數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)Fig.4 Raster data storage structure
圖5 柵格數(shù)據(jù)存儲(chǔ)關(guān)系表Fig.5 Raster data storage relation table
基于上述提出的柵格數(shù)據(jù)存儲(chǔ)模型,本文建立如下的柵格數(shù)據(jù)檢索方法:
(1) 首先根據(jù)柵格數(shù)據(jù)大小及柵格的地理范圍,計(jì)算柵格數(shù)據(jù)的單個(gè)像素在平面坐標(biāo)系中代表的實(shí)際地理范圍cellx、celly;
(2) 獲取用戶請(qǐng)求的地理坐標(biāo)范圍,結(jié)合步驟(1)中的cellx、celly,計(jì)算當(dāng)前請(qǐng)求柵格數(shù)據(jù)的長(zhǎng)度像素?cái)?shù)reqx和寬度像素?cái)?shù)reqy;
(3) 根據(jù)當(dāng)前視窗的寬度和高度(屏幕像素?cái)?shù)),結(jié)合柵格數(shù)據(jù)reqx、reqy,計(jì)算當(dāng)前視窗范圍內(nèi)的比例尺,找到與比例尺最近一級(jí)金字塔級(jí)別;
(4) 根據(jù)金字塔級(jí)別,查找該級(jí)金字塔在某一波段內(nèi)塊的位置,見(jiàn)式(1)和式(2)
(1)
(2)
式中,blockx、blocky分別表示柵格數(shù)據(jù)某一波段中切割塊的長(zhǎng)度和寬度(柵格像素?cái)?shù));tileminx、tileminy、tilemaxx、tilemaxy分別為所請(qǐng)求的塊號(hào)的最小列號(hào)、最小行號(hào)、最大列號(hào)、最大行號(hào);reqminx、reqminy、reqmaxx、reqmaxy分別標(biāo)識(shí)請(qǐng)求的地理范圍的最小x坐標(biāo)值、最小y坐標(biāo)值、最大x坐標(biāo)值、最大y坐標(biāo)值;imgminx、imgminy分別表示柵格數(shù)據(jù)地理范圍的最小x坐標(biāo)值、最小y坐標(biāo)值。
(5) 按照塊號(hào)請(qǐng)求數(shù)據(jù)后,對(duì)柵格邊界的塊進(jìn)行塊內(nèi)查找,通過(guò)塊內(nèi)切割、鄰近插值后得到最終查詢的柵格數(shù)據(jù)實(shí)體,本文不再贅述。
3.3 多源異構(gòu)矢柵數(shù)據(jù)流轉(zhuǎn)方法
結(jié)合矢柵數(shù)據(jù)一體化存儲(chǔ)和檢索方法,本節(jié)設(shè)計(jì)了基于空間數(shù)據(jù)引擎的流轉(zhuǎn)框架[22-24],將多源異構(gòu)矢柵數(shù)據(jù)與本文提出的一體化存儲(chǔ)模式進(jìn)行轉(zhuǎn)換,實(shí)現(xiàn)空間數(shù)據(jù)的無(wú)縫流轉(zhuǎn),如圖6所示。
對(duì)于矢柵數(shù)據(jù)存取過(guò)程,空間數(shù)據(jù)引擎中的數(shù)據(jù)統(tǒng)一訪問(wèn)接口根據(jù)數(shù)據(jù)源地址、數(shù)據(jù)存儲(chǔ)類型,調(diào)用相應(yīng)的數(shù)據(jù)源驅(qū)動(dòng)程序從局部關(guān)系數(shù)據(jù)庫(kù)(Oracle、PostGIS等)、文件型數(shù)據(jù)源(.shp、.dxf、瓦片文件等)、網(wǎng)絡(luò)數(shù)據(jù)源(WMS、WMTS、WFS等)中讀取多源異構(gòu)數(shù)據(jù),進(jìn)行空間數(shù)據(jù)一致性檢查后,將處理后的數(shù)據(jù)通過(guò)數(shù)據(jù)轉(zhuǎn)換接口轉(zhuǎn)換為本文提出的統(tǒng)一數(shù)據(jù)存儲(chǔ)模型,錄入到Oracle中,完成數(shù)據(jù)的存取,整個(gè)過(guò)程對(duì)于用戶來(lái)說(shuō)是透明的。
對(duì)于矢柵數(shù)據(jù)分析過(guò)程,空間數(shù)據(jù)引擎通過(guò)數(shù)據(jù)操作接口對(duì)數(shù)據(jù)進(jìn)行空間及屬性過(guò)濾、空間運(yùn)算、疊加分析等操作,同時(shí)提供了空間數(shù)據(jù)的預(yù)處理(空間坐標(biāo)轉(zhuǎn)換、數(shù)據(jù)校準(zhǔn)等)和質(zhì)檢,最終將處理結(jié)果放入到數(shù)據(jù)緩存中。
完成多源異構(gòu)數(shù)據(jù)互操作及處理是數(shù)據(jù)流轉(zhuǎn)過(guò)程中的關(guān)鍵[24],在該流轉(zhuǎn)框架下,本文針對(duì)關(guān)系型數(shù)據(jù)庫(kù)、非關(guān)系型數(shù)據(jù)庫(kù)、文件數(shù)據(jù)源、柵格數(shù)據(jù)、瓦片文件、網(wǎng)絡(luò)數(shù)據(jù)源、第三方SDE等18種數(shù)據(jù)源開(kāi)發(fā)了相應(yīng)的數(shù)據(jù)驅(qū)動(dòng)(Data Adapter,數(shù)據(jù)適配器),主要用于多源異構(gòu)矢柵數(shù)據(jù)的存取及轉(zhuǎn)換,實(shí)現(xiàn)將異構(gòu)數(shù)據(jù)映射到統(tǒng)一的邏輯模型和存儲(chǔ)結(jié)構(gòu)上,達(dá)到數(shù)據(jù)的互操作和無(wú)縫流轉(zhuǎn)的目的,如圖7所示;同時(shí)為了提高數(shù)據(jù)流轉(zhuǎn)的性能,數(shù)據(jù)統(tǒng)一訪問(wèn)接口采用線程池技術(shù),通過(guò)管道將讀寫并行執(zhí)行,降低網(wǎng)絡(luò)傳輸、磁盤I/O帶來(lái)的效率影響,并在大批量數(shù)據(jù)入庫(kù)時(shí),摒棄了傳統(tǒng)SQL語(yǔ)句Insert的方式,采用數(shù)據(jù)序列化方案,生成數(shù)據(jù)文件、索引數(shù)據(jù)文件及控制腳本文件,通過(guò)SQLLDR工具入庫(kù),極大地提高了入庫(kù)效率。
圖7 多源異構(gòu)數(shù)據(jù)的互操作及處理Fig.7 Interoperation and process of multi-source heterogeneous data
本文基于NewMap軟件API,利用上述方法開(kāi)發(fā)了基于Oracle的空間數(shù)據(jù)引擎(NewMap SDE,NMSDE)。為了驗(yàn)證本文提出的空間數(shù)據(jù)一體化存儲(chǔ)技術(shù)的效率和性能,與ArcSDE[25](空間數(shù)據(jù)幾何信息采用ST_GEOMETRY對(duì)象存儲(chǔ),其能夠使ArcSDE更好地利用Oracle的資源、兼容Oracle的特性、更快地讀取空間數(shù)據(jù))在相同的計(jì)算機(jī)(CPU 8核 3.6 GHz、4 G內(nèi)存、100 M以太網(wǎng)卡)、相同的網(wǎng)絡(luò)帶寬(百兆以太網(wǎng))、相同的Oracle數(shù)據(jù)庫(kù)服務(wù)器(CPU 8核 2.40 GHz、16 G內(nèi)存、100 M以太網(wǎng)卡)下進(jìn)行測(cè)試。
測(cè)試數(shù)據(jù)采用Open Street Map(OSM)提供的2016年3月某地區(qū)格式為Shapefile的矢量數(shù)據(jù),數(shù)據(jù)大小3.29 GB,共8個(gè)圖層,其中點(diǎn)圖層2個(gè),線和面圖層各3個(gè);柵格數(shù)據(jù)采用的是3個(gè)波段18 915×15 772的TIFF格式影像數(shù)據(jù)TIFF01(0.874 GB)、3個(gè)波段21 340×26 284 的IMG格式影像數(shù)據(jù)IMG01(1.653 GB)和1個(gè)波段的30 994×72 079的TIFF格式的影像數(shù)據(jù)TIFF02(2.182 GB),測(cè)試結(jié)果如下所示。
從表1中可以看出,NMSDE對(duì)矢量數(shù)據(jù)的存取效率整體要優(yōu)于ArcSDE,特別是入庫(kù)的數(shù)據(jù)量越大,如線數(shù)據(jù)(roads)、面數(shù)據(jù)(buildings),NMSDE導(dǎo)入數(shù)據(jù)效率優(yōu)勢(shì)越明顯,其主要原因是NMSDE在導(dǎo)入前對(duì)數(shù)據(jù)進(jìn)行了序列化的預(yù)處理,減少了與數(shù)據(jù)庫(kù)通信次數(shù),降低了通信消耗時(shí)間代價(jià)。同樣,對(duì)于矢量數(shù)據(jù)導(dǎo)出,NMSDE采用多線程技術(shù),并行、分批操作,效率略優(yōu)于ArcSDE。
表1 矢量數(shù)據(jù)存取效率對(duì)比
對(duì)于柵格數(shù)據(jù)的導(dǎo)入效率測(cè)試,本文分別采用了128×128、256×256、512×512(ArcSDE不支持)塊大小對(duì)柵格數(shù)據(jù)進(jìn)行分割導(dǎo)入(金字塔數(shù)據(jù)未計(jì)算在內(nèi)),并且對(duì)數(shù)據(jù)未進(jìn)行任何壓縮。從圖8(a)中可以看出,NMSDE的柵格數(shù)據(jù)導(dǎo)入效率優(yōu)于ArcSED,并且隨著分塊大小的遞增,入庫(kù)效率也有明顯提升。柵格數(shù)據(jù)導(dǎo)出效率測(cè)試如圖8(b)所示,在相同分塊大小的情況下,ArcSDE性能略優(yōu),主要原因是在導(dǎo)出數(shù)據(jù)時(shí)ArcSDE對(duì)柵格數(shù)據(jù)進(jìn)行了壓縮,但是當(dāng)NMSDE采用分塊大小為512×512時(shí)效率最好,原因是隨著柵格數(shù)據(jù)分塊的遞增,單次SQL通信過(guò)程中數(shù)據(jù)傳輸量增大,減少了與數(shù)據(jù)庫(kù)通信次數(shù),降低了通信代價(jià)。
圖8 柵格數(shù)據(jù)存取效率對(duì)比Fig.8 Comparison of efficiency of accessing raster data to database
對(duì)于空間數(shù)據(jù)的查詢效率本文選取同一地理范圍內(nèi)的數(shù)據(jù)進(jìn)行測(cè)試。如表2所示,對(duì)于矢量數(shù)據(jù)查詢效率NMSDE略優(yōu)于ArcSDE,說(shuō)明本文提出的優(yōu)化檢索技術(shù)是切實(shí)可行的;對(duì)于柵格數(shù)據(jù)查詢效率如圖9所示,NMSDE明顯優(yōu)于ArcSDE,并隨著分塊大小的遞增效率越高,在分塊大小為512×512時(shí),效率最高。
表2 矢量數(shù)據(jù)查詢效率對(duì)比
圖9 柵格數(shù)據(jù)查詢效率對(duì)比Fig.9 Comparison of efficiency of querying raster data
本文在分析當(dāng)前多源、海量、異構(gòu)的空間數(shù)據(jù)存儲(chǔ)和管理現(xiàn)狀的基礎(chǔ)上,提出了一種基于Oracle的矢柵數(shù)據(jù)一體化存儲(chǔ)和管理方法,使用全局統(tǒng)一的矢柵數(shù)據(jù)存儲(chǔ)模型及索引方法實(shí)現(xiàn)多源異構(gòu)數(shù)據(jù)的互操作與集成管理。通過(guò)試驗(yàn)對(duì)比分析表明,依據(jù)本文提出的方法研發(fā)的空間數(shù)據(jù)引擎NMSDE在矢柵數(shù)據(jù)的存取、查詢效率上優(yōu)于ArcSDE。
本文目前僅實(shí)現(xiàn)了Oracle與關(guān)系型數(shù)據(jù)庫(kù)、文檔存儲(chǔ)型數(shù)據(jù)庫(kù)的多源異構(gòu)數(shù)據(jù)流轉(zhuǎn)和互操作,隨著HBase、Accumulo等列存儲(chǔ)數(shù)據(jù)庫(kù)以及Hadoop MapReduce、Spark等并行框架在GIS系統(tǒng)以及空間大數(shù)據(jù)分析中大量的應(yīng)用,如何在并行分析的框架下實(shí)現(xiàn)基于列存儲(chǔ)的空間數(shù)據(jù)庫(kù)與關(guān)系數(shù)據(jù)庫(kù)的有效集成是下一步面臨的主要問(wèn)題。
[1] 李德仁, 姚遠(yuǎn), 邵振峰. 智慧城市中的大數(shù)據(jù)[J]. 武漢大學(xué)學(xué)報(bào)(信息科學(xué)版), 2014, 39(6): 631-640. LI Deren, YAO Yuan, SHAO Zhenfeng. Big Data in Smart City[J]. Geomatics and Information Science of Wuhan University, 2014, 39(6): 631-640.
[2] 李德仁. 展望大數(shù)據(jù)時(shí)代的地球空間信息學(xué)[J]. 測(cè)繪學(xué)報(bào), 2016, 45(4): 379-384. DOI: 10.11947/j.AGCS.2016.20160057. LI Deren. Towards Geo-spatial Information Science in Big Data Era[J]. Acta Geodaetica et Cartographica Sinica, 2016, 45(4): 379-384. DOI: 10.11947/j.AGCS.2016.20160057.
[3] 龔健雅. 空間數(shù)據(jù)庫(kù)管理系統(tǒng)的概念與發(fā)展趨勢(shì)[J]. 測(cè)繪科學(xué), 2001, 26(3): 4-9. GONG Jianya. Concepts and Development of Spatial Database Management[J]. Science of Surveying and Mapping, 2001, 26(3): 4-9.
[4] 覃雄派, 王會(huì)舉, 李芙蓉, 等. 數(shù)據(jù)管理技術(shù)的新格局[J]. 軟件學(xué)報(bào), 2013, 24(2): 175-197. QIN Xiongpai, WANG Huiju, LI Furong, et al. New Landscape of Data Management Technologies[J]. Journal of Software, 2013, 24(2): 175-197.
[5] 胡金星, 潘懋, 宋揚(yáng), 等. 空間數(shù)據(jù)庫(kù)實(shí)現(xiàn)及其集成技術(shù)研究[J]. 計(jì)算機(jī)應(yīng)用研究, 2003, 20(3): 12-14, 19. HU Jinxing, PAN Mao, SONG Yang, et al. Research on Realization and Integrated Technology of Spatial Databases[J]. Application Research of Computers, 2003, 20(3): 12-14, 19.
[6] 陳傳彬, 鄔群勇, 陳崇成. 基于GML的多源異構(gòu)空間數(shù)據(jù)集成框架研究[J]. 測(cè)繪科學(xué), 2005, 30(5): 53-55. CHEN Chuanbin, WU Qunyong, CHEN Chongcheng. A GML-based Multi-source and Heterogeneous Spatial Data Integration Framework[J]. Science of Surveying and Mapping, 2005, 30(5): 53-55.
[7] Oracle Corporation. Oracle? Spatial Developer’s Guide 11 g Release 2(11.2)[EB/OL]. (2013-11). http:∥docs.oracle.com/cd/E11882_01/appdev.112/e11830/toc.htm.
[8] Oracle Corporation.Oracle? Spatial GeoRaster Developer’s Guide 11 g Release 2(11.2)[EB/OL]. (2013-11). http:∥docs.oracle.com/cd/E11882_01/appdev.112/e11827/toc.htm.
[9] 申德榮, 于戈, 王習(xí)特, 等. 支持大數(shù)據(jù)管理的NoSQL系統(tǒng)研究綜述[J]. 軟件學(xué)報(bào), 2013, 24(8): 1786-1803. SHEN Derong, YU Ge, WANG Xite, et al. Survey on NoSQL for Management of Big Data[J]. Journal of Software, 2013, 24(8): 1786-1803.
[10] 陳崇成, 林劍峰, 吳小竹, 等. 基于NoSQL的海量空間數(shù)據(jù)云存儲(chǔ)與服務(wù)方法[J]. 地球信息科學(xué)學(xué)報(bào), 2013, 15(2): 166-174. CHEN Chongcheng, LIN Jianfeng, WU Xiaozhu, et al. Massive Geo-spatial Data Cloud Storage and Services Based on NoSQL Database Technique[J]. Journal of Geo-information Science, 2013, 15(2): 166-174.
[11] YAN Baoqiang, RHODES P J. IDEA-An API for Parallel Computing with Large Spatial Datasets[C]∥Proceedings of the 2011 International Conference on Parallel Processing. Taipei, China: IEEE, 2011: 355-364.
[12] 康俊鋒. 云計(jì)算環(huán)境下高分辨率遙感影像存儲(chǔ)與高效管理技術(shù)研究[D]. 杭州: 浙江大學(xué), 2011. KANG Junfeng. Technologies of Storage and Efficient Management on Cloud Computing for High Resolution Remote Sensing Image[D]. Hangzhou: Zhejiang University, 2011.
[13] 雷德龍, 郭殿升, 陳崇成, 等. 基于MongoDB的矢量空間數(shù)據(jù)云存儲(chǔ)與處理系統(tǒng)[J]. 地球信息科學(xué)學(xué)報(bào), 2014, 16(4): 507-516. LEI Delong, GUO Diansheng, CHEN Chongcheng, et al. Vector Spatial Data Cloud Storage and Processing Based on MongoDB[J]. Journal of Geo-information Science, 2014, 16(4): 507-516.
[14] 鄔倫, 張毅. 分布式多空間數(shù)據(jù)庫(kù)系統(tǒng)的集成技術(shù)[J]. 地理學(xué)與國(guó)土研究, 2002, 18(1): 6-10. WU Lun, ZHANG Yi. The Integrated Framework on Distributed Multi-Spatial Database System[J]. Geography and Territorial Research, 2002, 18(1): 6-10.
[15] 劉小飛, 關(guān)昆, 于海波, 等. 多源多目標(biāo)空間數(shù)據(jù)庫(kù)的一體化集成與管理技術(shù)研究[J]. 測(cè)繪通報(bào), 2014(12): 97-100. LIU Xiaofei, GUAN Kun, YU Haibo, et al. Research of Integration and Management of Multi-source Multi-target Geospatial Database[J]. Bulletin of Surveying and Mapping, 2014(12): 97-100.
[16] 徐道柱, 羅斌, 周巖, 等. 分布式環(huán)境下矢柵一體化數(shù)據(jù)組織模型設(shè)計(jì)[J]. 地球信息科學(xué)學(xué)報(bào), 2016, 18(12): 1588-1596. XU Daozhu, LUO Bin, ZHOU Yan, et al. Model Design of Integrated Vector and Raster Data Organization under the Distributed Environment[J]. Journal of Geo-information Science, 2016, 18(12): 1588-1596.
[17] 王意潔, 孫偉東, 周松, 等. 云計(jì)算環(huán)境下的分布存儲(chǔ)關(guān)鍵技術(shù)[J]. 軟件學(xué)報(bào), 2012, 23(4): 962-986. WANG Yijie, SUN Weidong, ZHOU Song, et al. Key Technologies of Distributed Storage for Cloud Computing[J]. Journal of Software, 2012, 23(4): 962-986.
[18] Ozsu M T, Valduriez P. Principles of Distributed Database Systems[M]. 2nd ed. New York: Prentice Hall, 1999.
[19] 李德仁, 關(guān)澤群. 空間信息系統(tǒng)的集成與實(shí)現(xiàn)[M]. 武漢: 武漢測(cè)繪科技大學(xué)出版社, 2000. LI Deren, GUAN Zequn. Integration and Implementation of Spatial Information System[M]. Wuhan: Wuhan Surveying and Mapping Science and Technology University Press, 2000.
[20] KJENSTAD K.On the Integration of Object-based Models and Field-based Models in GIS[J]. International Journal of Geographical Information Science, 2006, 20(5): 491-509.
[21] GOODCHILD M F, YUAN M, COVA T J. Towards a General Theory of Geographic Representation in GIS[J]. International Journal of Geographical Information Science, 2007, 21(3): 239-260.
[22] 朱欣焰, 張建超, 李德仁, 等. 無(wú)縫空間數(shù)據(jù)庫(kù)的概念、實(shí)現(xiàn)與問(wèn)題研究[J]. 武漢大學(xué)學(xué)報(bào)(信息科學(xué)版), 2002, 27(4): 382-386. ZHU Xinyan, ZHANG Jianchao, LI Deren, et al. Concepts, Implementation and Problems of the Seamless Spatial Database[J]. Geomatics and Information Science of Wuhan University, 2002, 27(4): 382-386.
[23] LIM E P, CHIANG R H L. The Integration of Relationship Instances from Heterogeneous Databases[J]. Decision Support Systems, 2000, 29(2): 153-167.
[24] 金寶軒. 網(wǎng)格環(huán)境下的異構(gòu)空間數(shù)據(jù)庫(kù)集成技術(shù)[J]. 計(jì)算機(jī)工程, 2008, 34(5): 74-76. JIN Baoxuan. Integration of Heterogeneous Spatial Databases in Grid Environment[J]. Computer Engineering, 2008, 34(5): 74-76.
[25] 杜紅悅, 劉先林, 宮輝力. 基于ArcSDE的空間數(shù)據(jù)綜合管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 測(cè)繪科學(xué), 2009, 34(5): 171-173. DU Hongyue, LIU Xianlin, GONG Huili. Design and Implementation of Spatial Data Integreted Management System Based on ArcSDE[J]. Science of Surveying and Mapping, 2009, 34(5): 171-173.
(責(zé)任編輯:宋啟凡)
WU Zheng(1982—), male, PhD, assistant researcher,majors in spatial data organization and management, GIS modeling and geographic information service.
LI Chengming
Integrated Storage and Management of Vector and Raster Data Based on Oracle Database
WU Zheng,LI Chengming,WU Pengda,SHEN Jianming,SUN Wei
Institute of GIS, Chinese Academy of Surveying and Mapping, Beijing 100830, China
At present, there are many problems in the storage and management of multi-source heterogeneous spatial data, such as the difficulty of transferring, the lack of unified storage and the low efficiency. By combining relational database and spatial data engine technology, an approach for integrated storage and management of vector and raster data is proposed on the basis of Oracle in this paper. This approach establishes an integrated storage model on vector and raster data and optimizes the retrieval mechanism at first, then designs a framework for the seamless data transfer, finally realizes the unified storage and efficient management of multi-source heterogeneous data. By comparing experimental results with the international leading similar software ArcSDE, it is proved that the proposed approach has higher data transfer performance and better query retrieval efficiency.
multi-source heterogeneous spatial data; vector and raster data integrated storage; retrieval optimization; data transfer
The National Key Technology Research and Development Program of the Ministry of Science and Technology of China (No.2015BAJ06B01); National Basic Surveying and Mapping Project (Nos. A1608;A1615)
吳政,李成名,武鵬達(dá),等.Oracle數(shù)據(jù)庫(kù)矢柵數(shù)據(jù)一體化存儲(chǔ)與管理[J].測(cè)繪學(xué)報(bào),2017,46(5):639-648.
10.11947/j.AGCS.2017.20160586. WU Zheng, LI Chengming, WU Pengda,et al.Integrated Storage and Management of Vector and Raster Data Based on Oracle Database[J]. Acta Geodaetica et Cartographica Sinica,2017,46(5):639-648. DOI:10.11947/j.AGCS.2017.20160586.
2016-11-17
吳政(1982—),男,博士,助理研究員,主要從事空間數(shù)據(jù)組織與管理、地理信息系統(tǒng)建模及地理信息服務(wù)等研究。
E-mail: wuzheng_gucas@163.com
李成名
E-mail: cmli@casm.ac.cn
P208
A
1001-1595(2017)05-0639-10
國(guó)家科技支撐計(jì)劃(2015BAJ06B01);國(guó)家基礎(chǔ)測(cè)繪項(xiàng)目(A1608;A1615)
修回日期: 2017-03-27