倪慧珠
(浙江省第二測繪院,浙江 杭州 310012)
?
基于ArcSDE的版本管理實現(xiàn)基礎測繪的增量更新
倪慧珠
(浙江省第二測繪院,浙江 杭州 310012)
摘要:利用增量更新技術對基礎地理信息數(shù)據(jù)庫進行更新是減少工作量、提高更新效率的主要解決方法之一。ArcSDE版本機制可以實現(xiàn)增量數(shù)據(jù)的提取,但版本沖突的存在制約了該技術的發(fā)展及應用。研究自動解決沖突方法,實現(xiàn)對基礎測繪數(shù)據(jù)的增量更新。
關鍵詞:增量更新;版本管理;ArcSDE;基礎測繪
隨著數(shù)字城市的發(fā)展,智慧城市的提出,各級政府部門、社會大眾對基礎地理信息的需求正向深層次的應用發(fā)展,同時各專業(yè)部門對地理信息系統(tǒng)的需求日益旺盛,對數(shù)據(jù)的現(xiàn)勢性要求逐步提高,這就對測繪部門數(shù)據(jù)的更新提出了挑戰(zhàn)?;A地理信息數(shù)據(jù)庫是測繪部門用來管理和更新基礎數(shù)據(jù)的基礎,全國大部分測繪與地理信息局均建立了本省的基礎地理信息數(shù)據(jù)庫,但由于作業(yè)模式及作業(yè)習慣等各方面的原因,一般都是基于圖幅(比如CAD格式、MicroStation格式)作業(yè)再入庫,這往往多增加幾道工序,再加上各環(huán)節(jié)的部門之間的流轉,大大影響了基礎地理信息數(shù)據(jù)的更新效率[1]。因此,基于庫體直接更新是提高效率的一種有效方式。
地理數(shù)據(jù)庫更新較常用的方法是按更新范圍整庫裁剪,更新后整庫覆蓋,即更新某一范圍數(shù)據(jù),首先要從整庫中將該范圍內數(shù)據(jù)切割,再分割成數(shù)塊給作業(yè)員更新,更新完成后將數(shù)據(jù)逐塊合并接邊,最后再整體替換整庫中的數(shù)據(jù)。對于全要素更新或者變化量較大的更新,這種形式較為適合。但對于少量要素更新、要素級更新以及準實時更新,增量更新機制則更加切實有效。ArcSDE是ArcGIS與各大數(shù)據(jù)庫進行數(shù)據(jù)管理的中間產品,同時還支持多個用戶的并發(fā)操作,ArcSDE的版本管理機制可以實現(xiàn)多用戶同時在同一數(shù)據(jù)庫、甚至同一個空間要素操作[2],該功能可大大提高數(shù)據(jù)更新效率。
如何利用ArcSDE版本管理機制實現(xiàn)基礎測繪多用戶并發(fā)更新及增量更新,提高更新效率是本論文研究重點。
1ArcSDE中版本管理的工作原理
版本化的方法是實現(xiàn)多版本、多用戶、多時態(tài)的數(shù)據(jù)管理模式的重要手段[3]。ArcSDE版本管理是以某一時刻的數(shù)據(jù)為基礎,建立各種版本數(shù)據(jù),再通過版本管理機制記錄各版本在每一時刻的數(shù)據(jù)變化并進行管理。不同版本只是通過各種關聯(lián)關系在“拷貝”數(shù)據(jù)的前提下對數(shù)據(jù)進行重組,做到既實現(xiàn)現(xiàn)勢數(shù)據(jù)的更新又做到歷史數(shù)據(jù)的保存。
ArcSDE版本管理的實現(xiàn)最大功勞在于元數(shù)據(jù)表和版本化表。元數(shù)據(jù)表包括versions表、states表、state-lineage表和mvtables-modified表。該四大表均有自己的職責與分工,元數(shù)據(jù)表可以看作是對版本數(shù)據(jù)的管理,但真正體現(xiàn)版本作用的是版本化表。版本化表由基表、A表和D表組成,基表就是基礎表,版本的基礎數(shù)據(jù)均保存在這些表中,而后期所建立的各版本的變化信息均由A表和D表負責。A表(可以理解為ADD表)記錄用戶增加或更新的消息,D表(可以理解為DELETE表)記錄用戶刪除或修改的信息。A表和D表均以要素的變化為一條記錄通過對A表和D表的控制實現(xiàn)版本數(shù)據(jù)的增量管理。
2基礎測繪增量更新的實現(xiàn)
增量更新,對于矢量數(shù)據(jù)而言,實質上可以歸結為三種操作類型:增加、刪除、修改。增加:新建一個地物要素對象,包括空間圖形和屬性;刪除:將一個地物要素從數(shù)據(jù)集中刪除;修改:對一個地物要素的圖形和屬性進行一定的編輯,包括位移、變形、屬性修改等。這三種操作造成的要素的變化信息就是所謂的“增量”。由于“修改”操作有較高的復雜性,不便于處理和控制,所以將這一過程分解為“增加”和“刪除”兩個過程來實現(xiàn)。所以,增量可以整合成兩個部分:增加和刪除。更新就是要將這部分內容融合到地理信息數(shù)據(jù)庫中。
2.1更新方式的建立
ArcSDE中的所有版本構成一個樹狀結構,根據(jù)父子之間的關系形成了不同的實現(xiàn)方式[4]。ArcSDE版本管理的實現(xiàn)方式主要為3種:單獨式、串聯(lián)式、并聯(lián)式。單獨式是用戶直接在一個版本進行編輯,一般用在任務急,區(qū)域面積不大,需多人合作編輯時可采用該模式。串聯(lián)式是在基礎版本上創(chuàng)建一個子版本,然后在該子版本的基礎上串聯(lián)出多個子版本,以此類推,該模式中基礎版本作為原始版本,用來保存歷史數(shù)據(jù),當然各階段的子版本也可以看作后期的歷史數(shù)據(jù),用戶只是在子版本上進行操作。并聯(lián)式是在父版本上創(chuàng)建多個子版本,多個子版本不產生任何關系,代表空間上不同地域范圍或功能單元的數(shù)據(jù),只是在編輯合并時會存在版本沖突的問題[5-6]。
基礎測繪生產中,各個作業(yè)員基于網(wǎng)格區(qū)域進行分工合作,最終完成整個測區(qū)的更新,故更新方式往往采用混合模式,即集單獨式、串聯(lián)式和并聯(lián)式于一體,發(fā)揮各自特點。首先建立DEFAULT版本作為歷史數(shù)據(jù),然后在DEFAULT版本上串聯(lián)中間版本用于數(shù)據(jù)更新,最后在中間版本上并聯(lián)建立不同用戶的子版本。
例如,若更新杭州城區(qū)的1∶5000DLG庫體數(shù)據(jù),則將整個杭州城區(qū)區(qū)域范圍內的數(shù)據(jù)作為父版本,用于建立歷史版本;作業(yè)組長在父版本的基礎上新建中間版本,作為工作版本;同時作業(yè)組長為每個作業(yè)員在工作版本的基礎上建立各自版本,用于各作業(yè)員在自己的版本上更新本區(qū)域內的數(shù)據(jù),如作業(yè)員A在其版本上更新西湖區(qū)的數(shù)據(jù),作業(yè)員B在其版本上更新拱墅區(qū)的數(shù)據(jù)等,各作業(yè)員分工明確、互不干涉。
2.2沖突的產生
1)版本合并的原理
通過并聯(lián)方式創(chuàng)建的子版本,各作業(yè)員在各自的版本上進行編輯,其編輯結果需通過版本提交合并到父版本中。作業(yè)員A、作業(yè)員B等在其任務分配的范圍內完成作業(yè)后,需把作業(yè)成果提交至父版本,最終形成現(xiàn)勢數(shù)據(jù)。版本提交的過程,也就是作業(yè)組長合并版本的過程。版本合并實質就是在父版本中對作業(yè)員A刪除的數(shù)據(jù)進行刪除,增加的數(shù)據(jù)進行增加(數(shù)據(jù)的修改在ArcSDE中看成對數(shù)據(jù)的刪除和增加)。
2)沖突、協(xié)調
若多個作業(yè)員在同一級別的版本中對同一個要素進行編輯,那么版本在合并過程中會出現(xiàn)沖突??梢酝ㄟ^圖2、圖3中的道路由作業(yè)員A、B在不同時刻的編輯情況(紅顏色表示某條道路)來了解沖突的發(fā)生。圖1表示版本樹的建立也就是更新方式的建立,即作業(yè)員A和作業(yè)員B在父版本上創(chuàng)建各自版本,此時各自版本是在同一級別上。圖2表示道路在T0時刻,父版本、作業(yè)員A、作業(yè)員B版本下的狀態(tài),此時3個版本的狀態(tài)是一致的;在T1時刻,作業(yè)員A在其作業(yè)范圍內對該條道路進行編輯后,提交版本至父版本,父版本中該條道路修改情況(如圖3所示),此時作業(yè)B繼續(xù)在T0時刻的版本上進行編輯;在T2時刻,作業(yè)員B在其作業(yè)范圍內對該條道路進行編輯后(如圖4所示)提交至父版本,此時沖突不可避免就發(fā)生了:對于父版本來說,該條道路已經(jīng)被作業(yè)員A提交更新,但作業(yè)員B又進行更新提交至父版本,父版本無法確定以哪條道路作為最終的結果。
圖1 版本樹圖
圖2 父版本、作業(yè)員A、作業(yè)員B版本在T0時刻的狀態(tài)
圖3 作業(yè)員A版本在T1時刻的狀態(tài)
圖4 作業(yè)員B版本在T2時刻的狀態(tài)
版本沖突主要是若干個子版本對同一個要素并發(fā)操作后出現(xiàn)不同的結果,最后無法直接進行沖突協(xié)調確定哪個結果為最終結果,必須通過父版本來解決沖突。把另一個子版本的編輯更新融入正在編輯的子版本的過程稱為協(xié)調[7]。所以對于不同時刻的沖突要素,版本引入了3個值,即編輯前版本的值、協(xié)調版本的值、編輯版本的值。以上圖2、圖3道路更新為例,圖2中的版本即道路在T0時刻的3個版本為編輯前版本的值;圖3即作業(yè)員對道路編輯后提交給父版本后,父版本上道路的值為協(xié)調版本的值;圖4作業(yè)員B在T2時刻編輯的道路值為編輯版本的值。
當然,如果編輯版本和協(xié)調版本不存在沖突的情況下,ArcSDE的版本機制會自動進行版本合并,表1所示對同一個要素進行并非編輯后,ArcSDE版本管理自行支持的處理方式。
表1 版本合并處理情況
從表1可以看出,具體沖突主要表現(xiàn)為3種類型:編輯版本更新而協(xié)調版本刪除、編輯版本刪除而協(xié)調版本更新、編輯版本更新且協(xié)調版本更新。對于沖突,ArcSDE必會有自己的協(xié)調方式,其自帶的協(xié)調方式主要有以下3種方式:保留編輯版本的結果、保留協(xié)調版本的結果、保留編輯版本前的結果[8]。對于作業(yè)員來說,理想結果是同時保留各自的編輯成果,即同時保留編輯版本與協(xié)調版本的結果。
2.3沖突的自動解決
基礎測繪通過并聯(lián)式和串聯(lián)式版本的布局,既可以保存歷史數(shù)據(jù),又可以操作現(xiàn)勢數(shù)據(jù)。同時,基礎測繪基于網(wǎng)格進行作業(yè),各作業(yè)員只更新各自范圍內的數(shù)據(jù),在合并過程中,通過修改子版本和父版本的同一條數(shù)據(jù),保證子父版本數(shù)據(jù)的一致性,從而杜絕在提交時沖突的出現(xiàn)。
首先通過相應接口根據(jù)協(xié)調版本和編輯版本不同的操作類型,獲取待處理的要素,再通過修改編輯版本或者協(xié)調版本的數(shù)據(jù),最后合并兩個版本的數(shù)據(jù)保證版本數(shù)據(jù)的一致性,從而杜絕在提交時沖突的出現(xiàn),進而實現(xiàn)數(shù)據(jù)的增量更新。
處理方法如下:
1)UpdateAndUpdate:
在作業(yè)范圍內:更新子協(xié)調版本各自范圍內的要素數(shù)據(jù)。
在作業(yè)范圍外:協(xié)調版本的要素數(shù)據(jù)替換編輯版本的要素數(shù)據(jù)。
2)UpdateAndDelete:
在作業(yè)范圍內:保留編輯版本作業(yè)范圍內這部分的要素數(shù)據(jù),刪除范圍外要素數(shù)據(jù)。
在作業(yè)范圍外:刪除編輯版本要素數(shù)據(jù)。
3)DeleteAndUpdate:
在作業(yè)范圍內:刪除編輯版本作業(yè)范圍內的要素數(shù)據(jù),用協(xié)調版本數(shù)據(jù)替換作業(yè)范圍外要素數(shù)據(jù)。
在作業(yè)范圍外:協(xié)調版本的要素數(shù)據(jù)替換編輯版本的要素數(shù)據(jù)。
3功能實現(xiàn)
該增量更新技術成功嵌入我局基礎測繪生產更新平臺,更新平臺以C/S架構,服務器端通過ArcSDE管理數(shù)據(jù)庫(ORACLE11g),客戶端基于ACRMAP開發(fā)更新作業(yè)平臺,同時基于ArcEngine自主開發(fā)項目管理子系統(tǒng)。作業(yè)員在各自客戶端上進行基礎測繪數(shù)據(jù)的更新操作,更新結果可利用該平臺中的版本管理模塊對服務器端的數(shù)據(jù)進行遠程增量更新。版本提交界面如圖5所示。
圖5 增量更新界面實現(xiàn)
增量更新技術的應用將會大大加快地理信息更新速度,建立以地理信息數(shù)據(jù)處理智能化、自動化為特征的集地理信息采集、處理、管理、更新的生產模式。在該模式下,我局基礎地理信息數(shù)據(jù)年更新能力逐步提升至2 000幅,在2012~2014年基礎測繪生產特別是要素級更新方面,該技術起到至關重要的作用。這也有利于改變現(xiàn)有的業(yè)界基礎測繪生產模式,加快了地理信息數(shù)據(jù)處理智能化、自動化為特征的測繪生產技術體系的建立。
4結束語
對基于基礎地理數(shù)據(jù)庫更新技術的研究,將有助于提高人們對這方面的認識,同時有助于為決策層對于基礎地理數(shù)據(jù)庫持續(xù)更新的工程設計和實施、基礎地理數(shù)據(jù)增量服務等提供發(fā)展思路。該論文以ArcSDE版本管理為切入點,自行研究開發(fā)沖突的解決方式,從而實現(xiàn)作業(yè)員對同一要素的自動接邊,通過版本合并,實現(xiàn)基礎測繪數(shù)據(jù)的增量更新。然而,隨著對海量數(shù)據(jù)的管理,并發(fā)用戶的增多,版本編輯時間的增長,編輯操作的增多,以及GIS數(shù)據(jù)操作時SQL語句的效率問題,使SDE的編輯效率逐漸降低。如何提高SDE的編輯效率,是下一步的主要研究內容。
參考文獻:
[1]樓燕敏,倪慧珠,彭艷,等.省級基礎地理信息數(shù)據(jù)庫“圖庫一體化”更新研究[C]//山東測繪學會.第十三屆華東六省一市測繪學會論文集.濟南:《現(xiàn)代測繪》編輯部,2011:194-196.
[2]操震洲,李清泉.基于ArcSDE和ArcGIS Engine的版本管理系統(tǒng)的設計和實現(xiàn)[J].測繪與空間地理信息,2006,29(5):76-78.
[3]劉茂華,楊倫,王峰.時空數(shù)據(jù)庫及其版本化管理[J].遼寧工程技術大學學報,2005,24(S1):62-64.
[4]ZEILER M.Modeling our World-The ESRI guideto geodatabase design[M].California:ESRI Press,1999:115-125.
[5]張沖,吳健平,錢大君.基于ArcSDE的GIS版本管理應用研究[J].甘肅聯(lián)合大學學報,2007,21(2):66-69.
[6]秦智慧.基于ArcSDE的規(guī)劃竣工測量空間數(shù)據(jù)庫建設[J].測繪與空間地理信息,2015,38(7):210-212.
[7]劉波,李大軍,田為春,等.基于ArcSDE的版本管理和版本合并的算法設計與實現(xiàn)[J].安徽農業(yè)科學,2010,38(2):1033 -1035.
[8]CUNNINGHAM G,SILVERTAND G.Managing aVersioned Geodatabase[M].New York:ESRI Press,2005.
[責任編輯:路曉鴿]
Data increment to fundamental data based on version management of ArcSD
ENI Huizhu
(The Second Surveying and Mapping Institute of Zhejiang Province,Hangzhou 310012,China)
Abstract:Using the incremental update technology to update the fundamental data,it can reduce the workload and improve the update efficiency.ArcSDE version mechanism can extract the incremental data,but the version conflict restricts the development and application of this technology.This paper studies an automatic conflict resolution method,which can realize the data increment of fundamental data.
Key words:data increment;version management;ArcSDE;fundamental data
中圖分類號:P208
文獻標識碼:A
文章編號:1006-7949(2016)03-0077-04
作者簡介:倪慧珠(1980-),女,工程師.
收稿日期:2015-02-11;修回日期:2015-08-19