王 慧,蔡志剛,唐 偉,任 易,吳承紅
(1.浙江省測(cè)繪科學(xué)技術(shù)研究院,浙江 杭州 310012;2.浙江省水利河口研究院,浙江 杭州 310020)
傳統(tǒng)測(cè)繪地理信息正向追求高精、高效和智能化的新型測(cè)繪快速轉(zhuǎn)型升級(jí)。新型測(cè)繪需要高效智能化構(gòu)建統(tǒng)一、實(shí)用的結(jié)構(gòu)化時(shí)空地理數(shù)據(jù)庫(kù)成果,而在已積聚的海量多源地理信息數(shù)據(jù)庫(kù)中,異構(gòu)性成為空間數(shù)據(jù)信息共享的瓶頸[1]。在實(shí)現(xiàn)時(shí)空地理數(shù)據(jù)高度集成的過(guò)程中,數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)庫(kù)結(jié)構(gòu)整合、數(shù)據(jù)要素融合是緊密銜接的主要環(huán)節(jié)。已有研究在CAD圖形和地理空間數(shù)據(jù)庫(kù)的數(shù)據(jù)格式互轉(zhuǎn)[2-4]、異構(gòu)專題數(shù)據(jù)庫(kù)的結(jié)構(gòu)轉(zhuǎn)換[5-7]、基于柵格和矢量的多源地理信息空間融合[8-10]等方面進(jìn)行了較系統(tǒng)的剖析。為實(shí)現(xiàn)將地理空間數(shù)據(jù)庫(kù)異構(gòu)整合的智能化處理代替繁重且易出錯(cuò)的人工處理,已有學(xué)者基于MapGIS、ArcGIS Spatial ETL、ArcGIS Object開(kāi)發(fā)設(shè)計(jì)了多源異構(gòu)空間數(shù)據(jù)轉(zhuǎn)換、重構(gòu)、合并、集成工具,提高了數(shù)據(jù)集成效率[11-13]。然而,隨著時(shí)空地理數(shù)據(jù)庫(kù)數(shù)據(jù)體量的不斷增長(zhǎng)以及異構(gòu)整合場(chǎng)景的不斷豐富,現(xiàn)有技術(shù)常用的桌面端模式已不能滿足快速、自適應(yīng)轉(zhuǎn)換的需求,因而亟需對(duì)異構(gòu)整合關(guān)鍵技術(shù)展開(kāi)深入研究。
鑒于時(shí)空地理數(shù)據(jù)庫(kù)異構(gòu)整合轉(zhuǎn)換本質(zhì)上是異構(gòu)數(shù)據(jù)庫(kù)的抽取、轉(zhuǎn)換和重新統(tǒng)一組裝的問(wèn)題,即ETL過(guò)程[14],本文重點(diǎn)基于ETL理論和語(yǔ)義映射研究了異構(gòu)整合整體技術(shù)方案和關(guān)鍵技術(shù),并依托FME平臺(tái)進(jìn)行異構(gòu)整合功能開(kāi)發(fā),形成B/S模式、基于云計(jì)算的面向時(shí)空地理數(shù)據(jù)庫(kù)的科學(xué)、標(biāo)準(zhǔn)、自動(dòng)化的在線整合平臺(tái),以實(shí)現(xiàn)新型測(cè)繪時(shí)期對(duì)海量時(shí)空數(shù)據(jù)庫(kù)整合的快速響應(yīng)。
地理信息數(shù)據(jù)倉(cāng)庫(kù)涵蓋了數(shù)量龐大且種類豐富的時(shí)空地理數(shù)據(jù)庫(kù)(圖1),各類數(shù)據(jù)庫(kù)的建設(shè)依據(jù)為數(shù)據(jù)字典。數(shù)據(jù)字典規(guī)定了要素分類、數(shù)據(jù)庫(kù)分層、數(shù)據(jù)庫(kù)圖層屬性結(jié)構(gòu)和各要素的圖形表示等具體內(nèi)容,是數(shù)據(jù)庫(kù)組織異構(gòu)性的主要體現(xiàn)。不同數(shù)據(jù)庫(kù)中水系面要素的圖層結(jié)構(gòu)如圖2所示,其中數(shù)據(jù)庫(kù)中圖層名稱、字段名稱、字段類型均存在一定差異。
圖1 不同結(jié)構(gòu)的時(shí)空地理數(shù)據(jù)庫(kù)圖層示例
時(shí)空地理數(shù)據(jù)庫(kù)異構(gòu)整合的目標(biāo)是將依據(jù)不同數(shù)據(jù)字典創(chuàng)建的數(shù)據(jù)庫(kù)整合轉(zhuǎn)換至統(tǒng)一框架結(jié)構(gòu)的目標(biāo)數(shù)據(jù)庫(kù),通常涉及要素代碼轉(zhuǎn)換、要素圖層轉(zhuǎn)換、屬性結(jié)構(gòu)轉(zhuǎn)換等步驟。相較于數(shù)據(jù)庫(kù)要素級(jí)的處理,數(shù)據(jù)庫(kù)的異構(gòu)整合轉(zhuǎn)換在數(shù)據(jù)庫(kù)建設(shè)工作中的占比更多、難度更大、技術(shù)門檻更高,且整合轉(zhuǎn)換的質(zhì)量好壞、效率高低將直接影響時(shí)空地理數(shù)據(jù)庫(kù)成果的正確性以及地理信息數(shù)據(jù)服務(wù)的有效性和敏捷性。
面向時(shí)空地理數(shù)據(jù)庫(kù)異構(gòu)整合的研究總體圍繞3個(gè)方面:數(shù)據(jù)庫(kù)整合集成的關(guān)鍵過(guò)程分析、異構(gòu)整合技術(shù)流程的制定和多源異構(gòu)空間數(shù)據(jù)自動(dòng)集成工具的開(kāi)發(fā)?,F(xiàn)有研究成果初步形成了異構(gòu)整合的技術(shù)流程,在一定程度上提高了異構(gòu)整合的效率,但存在以下問(wèn)題亟待解決:①異構(gòu)整合過(guò)程中異常問(wèn)題的處理不夠深入、全面,整體工作流有待細(xì)致梳理,形成嚴(yán)謹(jǐn)、科學(xué)、標(biāo)準(zhǔn)化的技術(shù)方案;②異構(gòu)整合的自動(dòng)化實(shí)現(xiàn)常限于某一種GIS平臺(tái),桌面模式無(wú)法穩(wěn)定支撐海量數(shù)據(jù)庫(kù)的規(guī)模化轉(zhuǎn)換,在云計(jì)算資源的支撐下開(kāi)展在線異構(gòu)整合技術(shù)研究十分迫切;③在異構(gòu)整合功能開(kāi)發(fā)的過(guò)程中,需要充分考慮擴(kuò)展性、靈活性和自適應(yīng)性,設(shè)計(jì)一個(gè)通用的轉(zhuǎn)換方案或平臺(tái)以滿足不同異構(gòu)轉(zhuǎn)換場(chǎng)景。
源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的映射關(guān)系是實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換的基礎(chǔ),其創(chuàng)建依據(jù)是對(duì)應(yīng)的數(shù)據(jù)標(biāo)準(zhǔn)或數(shù)據(jù)字典,主要面向要素代碼、圖層名稱和屬性名稱3個(gè)層面,如表1所示。通過(guò)源描述與目標(biāo)描述進(jìn)行語(yǔ)義匹配可自動(dòng)創(chuàng)建映射關(guān)系,再以數(shù)據(jù)字典為輔助完善映射關(guān)系,該方式能大量減少人工作業(yè),形成的語(yǔ)義映射文件能重復(fù)應(yīng)用于大批量數(shù)據(jù)庫(kù)異構(gòu)整合中。語(yǔ)義映射的關(guān)鍵是確保要素、屬性、圖層都能找到各自的映射,通過(guò)映射關(guān)系在數(shù)據(jù)轉(zhuǎn)換后實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)邏輯的重新組織,并解決形式表達(dá)層面上的沖突。
表1 映射關(guān)系示例
從ETL理論技術(shù)角度分析異構(gòu)整合,即以海量、復(fù)雜、多樣的地理空間數(shù)據(jù)庫(kù)為數(shù)據(jù)源,從中按需提取,再經(jīng)過(guò)數(shù)據(jù)清洗、加工、整理和轉(zhuǎn)換等步驟,最后裝載至目標(biāo)框架結(jié)構(gòu)數(shù)據(jù)庫(kù)中。
1)數(shù)據(jù)清洗。時(shí)空地理數(shù)據(jù)庫(kù)作為數(shù)據(jù)轉(zhuǎn)換的數(shù)據(jù)源難免存在不合規(guī)范的數(shù)據(jù),數(shù)據(jù)清洗的目標(biāo)是分析找出數(shù)據(jù)缺失(如水系面丟失常水位岸線、丟失水系交匯線、水系對(duì)象線等)、數(shù)據(jù)重復(fù)(如要素自重復(fù)、要素唯一編碼重復(fù)等)、要素代碼異常(如超出要素代碼表、要素圖層錯(cuò)誤等)和屬性不規(guī)范(如小數(shù)取位不正確、屬性賦空不正確等)等問(wèn)題數(shù)據(jù),并進(jìn)行處理。在數(shù)據(jù)清洗環(huán)節(jié)設(shè)計(jì)自動(dòng)化檢查和處理算法,開(kāi)發(fā)工具集實(shí)現(xiàn)數(shù)據(jù)補(bǔ)缺、數(shù)據(jù)自動(dòng)化去重、屬性規(guī)范化,對(duì)于保證數(shù)據(jù)轉(zhuǎn)換的正確性具有重要意義。
2)數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)轉(zhuǎn)換的前提是已有基于數(shù)據(jù)字典創(chuàng)建的映射關(guān)系表,但不排除數(shù)據(jù)庫(kù)與數(shù)據(jù)字典存在屬性字段命名或類型沖突,因此考慮先進(jìn)行數(shù)據(jù)庫(kù)結(jié)構(gòu)框架的自動(dòng)提取,并與數(shù)據(jù)字典進(jìn)行對(duì)比,在確保數(shù)據(jù)庫(kù)符合對(duì)應(yīng)數(shù)據(jù)字典要求的條件下再開(kāi)展數(shù)據(jù)庫(kù)的異構(gòu)轉(zhuǎn)換。為適應(yīng)不同的異構(gòu)轉(zhuǎn)換場(chǎng)景,本文采取調(diào)用要素代碼映射表、圖層映射表、屬性字段映射表等外部配置表的方式實(shí)現(xiàn)源數(shù)據(jù)庫(kù)向目標(biāo)數(shù)據(jù)庫(kù)的異構(gòu)轉(zhuǎn)換。
3)數(shù)據(jù)重新裝載。由于可擴(kuò)展標(biāo)記語(yǔ)言(XML)能對(duì)文檔結(jié)構(gòu)和數(shù)據(jù)進(jìn)行約定,在實(shí)現(xiàn)數(shù)據(jù)信息標(biāo)準(zhǔn)化、統(tǒng)一化和共享上具有獨(dú)特優(yōu)勢(shì)[15],因此在異構(gòu)整合前先創(chuàng)建或在ArcGIS平臺(tái)下導(dǎo)出目標(biāo)框架結(jié)構(gòu)XML文件,再通過(guò)外部調(diào)用該文件,從而保證將源數(shù)據(jù)庫(kù)精準(zhǔn)地裝載至目標(biāo)框架結(jié)構(gòu)的數(shù)據(jù)庫(kù)中。
在地理空間數(shù)據(jù)庫(kù)的ETL過(guò)程中,必不可少地會(huì)面臨數(shù)據(jù)源異常和轉(zhuǎn)換過(guò)程異常等問(wèn)題,如數(shù)據(jù)源中要素代碼所指要素放錯(cuò)層、數(shù)據(jù)源中要素代碼異常、數(shù)據(jù)轉(zhuǎn)換過(guò)程中要素與目標(biāo)圖層的幾何類型不一致(面轉(zhuǎn)線、面轉(zhuǎn)點(diǎn)、線轉(zhuǎn)面、線轉(zhuǎn)點(diǎn)等如表2所示)、要素幾何類型特征碼與實(shí)際要素幾何類型不一致(表3)等問(wèn)題。
表2 屬性類型沖突示例
表3 幾何類型沖突示例
在異構(gòu)數(shù)據(jù)庫(kù)的整合轉(zhuǎn)換中,應(yīng)考慮數(shù)據(jù)庫(kù)的完整性和安全性以及轉(zhuǎn)換過(guò)程的穩(wěn)定性和抗干擾性。鑒于異構(gòu)數(shù)據(jù)庫(kù)整合轉(zhuǎn)換中錯(cuò)誤常發(fā)生在最后的數(shù)據(jù)寫入階段,為減少耗時(shí)本文采用前置異常沖突檢查、對(duì)異常數(shù)據(jù)標(biāo)記分流輸出的處理方式,在ETL完整執(zhí)行后再對(duì)異常數(shù)據(jù)庫(kù)進(jìn)行修改處理。
本文通過(guò)對(duì)異構(gòu)整合關(guān)鍵環(huán)節(jié)的分析梳理,構(gòu)建了異構(gòu)整合技術(shù)流程,如圖3所示。FME Workbench中內(nèi)置了上百個(gè)轉(zhuǎn)換器,可支持?jǐn)?shù)據(jù)庫(kù)的快速ETL實(shí)現(xiàn),其中PythonCaller轉(zhuǎn)換器能調(diào)用ArcPy、FME Objects和sys等函數(shù)類庫(kù),從而為FME+Python+ArcPy的集成和拓展提供無(wú)限可能,Schema Maper等轉(zhuǎn)換器能快速實(shí)現(xiàn)屬性映射。
圖3 時(shí)空地理數(shù)據(jù)庫(kù)異構(gòu)整合技術(shù)流程圖
基于FME進(jìn)行異構(gòu)數(shù)據(jù)庫(kù)整合轉(zhuǎn)換功能開(kāi)發(fā)時(shí),只對(duì)源數(shù)據(jù)庫(kù)進(jìn)行讀取操作,不會(huì)因異常而回滾全部操作,能避免破壞源數(shù)據(jù)庫(kù)。此外,本文采用外部配置表作為映射關(guān)系約束,以目標(biāo)數(shù)據(jù)庫(kù)XML框架文件為輸出結(jié)構(gòu)約束,從而提高轉(zhuǎn)換的自適應(yīng)性和正確性。其主要子功能模塊包括數(shù)據(jù)庫(kù)框架結(jié)構(gòu)提取、要素屬性預(yù)檢查、水位岸線與交匯線自動(dòng)生成、映射關(guān)系表自動(dòng)創(chuàng)建、異常數(shù)據(jù)檢查輸出、匹配數(shù)據(jù)自動(dòng)轉(zhuǎn)換等,最終形成全流程異構(gòu)整合工具集發(fā)布至FME Server。
FME平臺(tái)通過(guò)引入在線空間數(shù)據(jù)ETL技術(shù),可建立基于SOA的空間ETL服務(wù),其多節(jié)點(diǎn)的并行處理能力為海量數(shù)據(jù)的快速整合提供了支撐。因此,聯(lián)合
FME平臺(tái)的Server和Integration的API接口進(jìn)行在線異構(gòu)整合功能的二次開(kāi)發(fā)。其關(guān)鍵技術(shù)路線如圖4所示。
圖4 在線異構(gòu)整合開(kāi)發(fā)關(guān)鍵技術(shù)
管理員在后臺(tái)進(jìn)行目標(biāo)數(shù)據(jù)庫(kù)模板XML、代碼映射表、圖層映射表、屬性字段映射表和輸出結(jié)果路徑等統(tǒng)一參數(shù)的預(yù)配置,用戶即可訪問(wèn)前端主頁(yè),實(shí)現(xiàn)本地時(shí)空地理數(shù)據(jù)庫(kù)的一鍵上傳和在線異構(gòu)整合結(jié)果的一鍵下載,如圖5所示。通過(guò)浙江省新型測(cè)繪體系數(shù)據(jù)庫(kù)整合建設(shè)項(xiàng)目的大量應(yīng)用,驗(yàn)證了本文研究成果在時(shí)空地理數(shù)據(jù)庫(kù)異構(gòu)整合中的正確性、完整性、高效性和靈活性。
圖5 時(shí)空地理數(shù)據(jù)庫(kù)在線異構(gòu)整合的應(yīng)用
本文借助ETL理論,提出了一套科學(xué)、標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)異構(gòu)整合處理流程,并基于FME提供的ETL技術(shù)和ETL服務(wù)進(jìn)行二次開(kāi)發(fā);采用讀取數(shù)據(jù)庫(kù)框架XML文件、圖層、屬性、代碼映射表等外部文件的方式,實(shí)現(xiàn)了海量多源異構(gòu)時(shí)空地理數(shù)據(jù)庫(kù)的在線高效精準(zhǔn)整合,為構(gòu)建全省框架結(jié)構(gòu)統(tǒng)一的地理空間數(shù)據(jù)庫(kù)提供了一種集約型的解決方案,對(duì)優(yōu)化地理空間數(shù)據(jù)庫(kù)的生產(chǎn)組織模式以及進(jìn)一步提升自然資源數(shù)據(jù)支撐效率和數(shù)據(jù)服務(wù)質(zhì)量具有一定的參考意義。