王 慧,蔡志剛,唐 偉,任 易,吳承紅
(1.浙江省測繪科學技術研究院,浙江 杭州 310012;2.浙江省水利河口研究院,浙江 杭州 310020)
傳統測繪地理信息正向追求高精、高效和智能化的新型測繪快速轉型升級。新型測繪需要高效智能化構建統一、實用的結構化時空地理數據庫成果,而在已積聚的海量多源地理信息數據庫中,異構性成為空間數據信息共享的瓶頸[1]。在實現時空地理數據高度集成的過程中,數據格式轉換、數據庫結構整合、數據要素融合是緊密銜接的主要環節。已有研究在CAD圖形和地理空間數據庫的數據格式互轉[2-4]、異構專題數據庫的結構轉換[5-7]、基于柵格和矢量的多源地理信息空間融合[8-10]等方面進行了較系統的剖析。為實現將地理空間數據庫異構整合的智能化處理代替繁重且易出錯的人工處理,已有學者基于MapGIS、ArcGIS Spatial ETL、ArcGIS Object開發設計了多源異構空間數據轉換、重構、合并、集成工具,提高了數據集成效率[11-13]。然而,隨著時空地理數據庫數據體量的不斷增長以及異構整合場景的不斷豐富,現有技術常用的桌面端模式已不能滿足快速、自適應轉換的需求,因而亟需對異構整合關鍵技術展開深入研究。
鑒于時空地理數據庫異構整合轉換本質上是異構數據庫的抽取、轉換和重新統一組裝的問題,即ETL過程[14],本文重點基于ETL理論和語義映射研究了異構整合整體技術方案和關鍵技術,并依托FME平臺進行異構整合功能開發,形成B/S模式、基于云計算的面向時空地理數據庫的科學、標準、自動化的在線整合平臺,以實現新型測繪時期對海量時空數據庫整合的快速響應。
地理信息數據倉庫涵蓋了數量龐大且種類豐富的時空地理數據庫(圖1),各類數據庫的建設依據為數據字典。數據字典規定了要素分類、數據庫分層、數據庫圖層屬性結構和各要素的圖形表示等具體內容,是數據庫組織異構性的主要體現。不同數據庫中水系面要素的圖層結構如圖2所示,其中數據庫中圖層名稱、字段名稱、字段類型均存在一定差異。

圖1 不同結構的時空地理數據庫圖層示例
時空地理數據庫異構整合的目標是將依據不同數據字典創建的數據庫整合轉換至統一框架結構的目標數據庫,通常涉及要素代碼轉換、要素圖層轉換、屬性結構轉換等步驟。相較于數據庫要素級的處理,數據庫的異構整合轉換在數據庫建設工作中的占比更多、難度更大、技術門檻更高,且整合轉換的質量好壞、效率高低將直接影響時空地理數據庫成果的正確性以及地理信息數據服務的有效性和敏捷性。
面向時空地理數據庫異構整合的研究總體圍繞3個方面:數據庫整合集成的關鍵過程分析、異構整合技術流程的制定和多源異構空間數據自動集成工具的開發。現有研究成果初步形成了異構整合的技術流程,在一定程度上提高了異構整合的效率,但存在以下問題亟待解決:①異構整合過程中異常問題的處理不夠深入、全面,整體工作流有待細致梳理,形成嚴謹、科學、標準化的技術方案;②異構整合的自動化實現常限于某一種GIS平臺,桌面模式無法穩定支撐海量數據庫的規模化轉換,在云計算資源的支撐下開展在線異構整合技術研究十分迫切;③在異構整合功能開發的過程中,需要充分考慮擴展性、靈活性和自適應性,設計一個通用的轉換方案或平臺以滿足不同異構轉換場景。
源數據庫和目標數據庫的映射關系是實現數據轉換的基礎,其創建依據是對應的數據標準或數據字典,主要面向要素代碼、圖層名稱和屬性名稱3個層面,如表1所示。通過源描述與目標描述進行語義匹配可自動創建映射關系,再以數據字典為輔助完善映射關系,該方式能大量減少人工作業,形成的語義映射文件能重復應用于大批量數據庫異構整合中。語義映射的關鍵是確保要素、屬性、圖層都能找到各自的映射,通過映射關系在數據轉換后實現數據結構邏輯的重新組織,并解決形式表達層面上的沖突。

表1 映射關系示例
從ETL理論技術角度分析異構整合,即以海量、復雜、多樣的地理空間數據庫為數據源,從中按需提取,再經過數據清洗、加工、整理和轉換等步驟,最后裝載至目標框架結構數據庫中。
1)數據清洗。時空地理數據庫作為數據轉換的數據源難免存在不合規范的數據,數據清洗的目標是分析找出數據缺失(如水系面丟失常水位岸線、丟失水系交匯線、水系對象線等)、數據重復(如要素自重復、要素唯一編碼重復等)、要素代碼異常(如超出要素代碼表、要素圖層錯誤等)和屬性不規范(如小數取位不正確、屬性賦空不正確等)等問題數據,并進行處理。在數據清洗環節設計自動化檢查和處理算法,開發工具集實現數據補缺、數據自動化去重、屬性規范化,對于保證數據轉換的正確性具有重要意義。
2)數據轉換。數據轉換的前提是已有基于數據字典創建的映射關系表,但不排除數據庫與數據字典存在屬性字段命名或類型沖突,因此考慮先進行數據庫結構框架的自動提取,并與數據字典進行對比,在確保數據庫符合對應數據字典要求的條件下再開展數據庫的異構轉換。為適應不同的異構轉換場景,本文采取調用要素代碼映射表、圖層映射表、屬性字段映射表等外部配置表的方式實現源數據庫向目標數據庫的異構轉換。
3)數據重新裝載。由于可擴展標記語言(XML)能對文檔結構和數據進行約定,在實現數據信息標準化、統一化和共享上具有獨特優勢[15],因此在異構整合前先創建或在ArcGIS平臺下導出目標框架結構XML文件,再通過外部調用該文件,從而保證將源數據庫精準地裝載至目標框架結構的數據庫中。
在地理空間數據庫的ETL過程中,必不可少地會面臨數據源異常和轉換過程異常等問題,如數據源中要素代碼所指要素放錯層、數據源中要素代碼異常、數據轉換過程中要素與目標圖層的幾何類型不一致(面轉線、面轉點、線轉面、線轉點等如表2所示)、要素幾何類型特征碼與實際要素幾何類型不一致(表3)等問題。

表2 屬性類型沖突示例

表3 幾何類型沖突示例
在異構數據庫的整合轉換中,應考慮數據庫的完整性和安全性以及轉換過程的穩定性和抗干擾性。鑒于異構數據庫整合轉換中錯誤常發生在最后的數據寫入階段,為減少耗時本文采用前置異常沖突檢查、對異常數據標記分流輸出的處理方式,在ETL完整執行后再對異常數據庫進行修改處理。
本文通過對異構整合關鍵環節的分析梳理,構建了異構整合技術流程,如圖3所示。FME Workbench中內置了上百個轉換器,可支持數據庫的快速ETL實現,其中PythonCaller轉換器能調用ArcPy、FME Objects和sys等函數類庫,從而為FME+Python+ArcPy的集成和拓展提供無限可能,Schema Maper等轉換器能快速實現屬性映射。

圖3 時空地理數據庫異構整合技術流程圖
基于FME進行異構數據庫整合轉換功能開發時,只對源數據庫進行讀取操作,不會因異常而回滾全部操作,能避免破壞源數據庫。此外,本文采用外部配置表作為映射關系約束,以目標數據庫XML框架文件為輸出結構約束,從而提高轉換的自適應性和正確性。其主要子功能模塊包括數據庫框架結構提取、要素屬性預檢查、水位岸線與交匯線自動生成、映射關系表自動創建、異常數據檢查輸出、匹配數據自動轉換等,最終形成全流程異構整合工具集發布至FME Server。
FME平臺通過引入在線空間數據ETL技術,可建立基于SOA的空間ETL服務,其多節點的并行處理能力為海量數據的快速整合提供了支撐。因此,聯合
FME平臺的Server和Integration的API接口進行在線異構整合功能的二次開發。其關鍵技術路線如圖4所示。

圖4 在線異構整合開發關鍵技術
管理員在后臺進行目標數據庫模板XML、代碼映射表、圖層映射表、屬性字段映射表和輸出結果路徑等統一參數的預配置,用戶即可訪問前端主頁,實現本地時空地理數據庫的一鍵上傳和在線異構整合結果的一鍵下載,如圖5所示。通過浙江省新型測繪體系數據庫整合建設項目的大量應用,驗證了本文研究成果在時空地理數據庫異構整合中的正確性、完整性、高效性和靈活性。

圖5 時空地理數據庫在線異構整合的應用
本文借助ETL理論,提出了一套科學、標準化的數據庫異構整合處理流程,并基于FME提供的ETL技術和ETL服務進行二次開發;采用讀取數據庫框架XML文件、圖層、屬性、代碼映射表等外部文件的方式,實現了海量多源異構時空地理數據庫的在線高效精準整合,為構建全省框架結構統一的地理空間數據庫提供了一種集約型的解決方案,對優化地理空間數據庫的生產組織模式以及進一步提升自然資源數據支撐效率和數據服務質量具有一定的參考意義。