宋曉 梁建峰 李維祿 苗慶生 韓璐遙 韋廣昊
(國家海洋信息中心, 天津 300171)
提要 通過對極地海洋數據的特征及應用需求分析, 基于“一種架構支持多類應用”的傳統數據庫模式已無法滿足需求, 本文提出采用“多種架構支持多類應用”模式的數據庫設計理念, 通過研究極地海洋數據分類分層管理體系, 開展極地海洋原始數據層、基礎數據層、綜合數據層、成果數據層的存儲管理機制、數據庫體系架構設計、數據庫模型設計等關鍵技術研究, 開發數據庫查詢檢索功能, 滿足用戶對極地海洋數據的多樣化查詢檢索、空間可視化展示、關聯分析等需求, 實現極地海洋數據的有效存儲、高效應用和開放共享。
目前極地海洋數據獲取已呈現出全時空覆蓋、綜合性觀測、常態化調查以及局部精細化補充調查的新局面, 各個國家已經推出新的海洋觀測/監測/調查計劃, 包括 Argo、海王星、OOI、GOOS、IOOS等多個觀測計劃[1-5], 并發射了多顆海洋觀測衛星[6-8], 通過衛星遙感、各類浮標、雷達等新型觀測手段, 提升了極地數據獲取能力。
目前國內針對極地數據存儲管理, 通常采用單一的數據庫技術進行數據庫建模, 但是面對多源、異構、多模態、數據量大且動態增長等特征的極地海洋數據[9-10], 利用單一的數據結構組織存儲方式進行處理管理, 只能實現簡單的數據管理, 數據利用率及可視化程度都較低, 難以滿足用戶多樣化的數據查詢檢索、高性能計算、綜合分析、關聯分析、聚類分析等應用需求。
隨著數據庫技術的發展, 針對結構化、非結構數據庫應運而生, 比較常見的有以 Oracle、SQLServer為代表的事務型數據庫, 以Greenplum、Gbase 8a為代表的高性能并行數據庫, 以Hadoop為代表的非結構化數據庫, 目前我國 IT、金融、公安等行業針對不同數據類型、業務專題, 采用“OldSQL+NewSQL”或“OldSQL+NoSQL”等混搭模式的嘗試, 取得了良好效果。本文針對極地海洋領域, 首次提出“OldSQL+NewSQL+NoSQL”混搭模式的數據庫存儲方式應用到極地海洋領域,面對非結構化數據、時間序列數據、空間數據等多類型的極地數據, 針對存儲、管理、分析、應用、服務等應用分析需求, 開展數據庫模型設計與關鍵技術研究。
本文利用多源數據模型建模技術, 通過數據結構模型、組織模型、存儲模型和業務模型等模型的構建, 對多類型極地數據按類別分別實現數據的分類與分層設計, 針對不同層次數據庫開展不同應用模式的數據庫架構設計, 實現基于OldSQL結構化基礎數據庫技術的面向極地海洋結構化標準數據集的數據庫設計與建模方法研究,基于NewSQL并行數據庫技術面向結構化極地海洋大數據的綜合數據智能分析、數據均勻分布策略與數據檢索技術研究, 基于 NoSQL非結構化數據庫技術的面向非結構化極地海洋數據的多級索引技術研究。
采用“OldSQL+NewSQL+NoSQL”混搭模式的數據庫存儲方式開展極地海洋數據庫的設計與實現(圖1)。其中, 事務型數據庫系統主要面向原始數據和基礎數據層, 針對極地海洋元數據、空間數據、基礎業務數據, 通過事務處理引擎、時間序列引擎、空間數據引擎和高可用解決方案構建極地海洋結構化基礎數據庫; 分布式并行數據庫系統主要面向綜合數據層, 采用列存儲分布式并行數據庫集群構建,為超大規模數據管理提供高性能計算、綜合分析平臺, 為各類海洋數據分析與計算等提供支持; 非結構化Hadoop數據庫系統主要面向成果數據層, 針對需要分析利用文本、音視頻文件、時間序列等非結構化數據, 建立Hadoop數據庫, 實現非結構化數據的關聯分析、聚類分析、深度學習等應用研究。

圖1 極地海洋數據庫總體架構設計Fig.1.The overall architecture design of polar marine database
極地數據來源豐富, 且各類來源獲取的數據類型、數據頻率、獲取方式均存在差異, 通過分析不同數據來源特點, 對開展極地數據庫設計具有指導性作用。極地數據按獲取來源可分為: 對地觀測數據、地基觀測/監測數據、極地考察數據和計算模擬數據。
1.2.1 對地觀測數據
主要包括長期走航重復斷面業務化觀測數據、重點區域定點陣列式觀測數據、空間地理測繪及衛星遙感觀測數據等。
1.2.2 地基觀(監)測數據
主要包括陸地生態環境觀(監)測數據、冰川環境觀(監)測數據、空間環境綜合監測數據等。
1.2.3 極地考察數據
極地考察數據是通過極地航次任務采集獲取的數據, 根據考察計劃定期更新數據, 可按照極地考察航次進行分類, 實現所有航次考察數據的管理。
1.2.4 計算模擬數據
通過統計分析、數值分析、計算模擬等手段進行數據處理, 得到的數據。
按照數據來源、數據處理層次、應用系統設計角度對極地數據進行分層設計, 將極地數據分為: 原始數據層、基礎數據層、綜合數據層和成果數據層, 可滿足不同人員、不同業務領域、不同研究目標的需求。
1.3.1 極地海洋原始數據層
原始數據是指采用南北極陸-海-空觀(監)測平臺、北極陸-海-空觀(監)測平臺和極地考察等手段, 獲取得到的極地冰川[11-13]、極地海冰[14]、極地物理海洋[15]、極地氣象[16-17]、極地大氣空間物理[18-19]、極地地質[20]、極地地球物理[21]、極地化學[22-23]、極地生物生態[24-27]、極地遙感[28]等原始資料。
1.3.2 極地海洋基礎數據層
基礎數據層是指針對極地原始資料按照資料來源、學科類型進行定向分類整理, 開展數據校驗、重復性檢查、數據解碼和質量控制等標準化處理, 形成的標準數據文件。
1.3.3 極地海洋綜合數據層
綜合數據層是指針對多源異構標準數據集,按照學科類型、獲取方式, 進行格式統一、標準統一、基準統一、計量單位統一、綜合排重等整合提取轉換, 以及時空維度排序、衍生參數計算、數據訂正等處理, 將同類學科/要素、相同獲取方式資料按照方區或時間維度進行組織存放, 形成綜合數據層。
1.3.4 極地海洋成果數據層
成果數據層主要包括數值型產品和圖形產品,是指針對極地標準化數據進行制作加工形成的極地表面冰流速矢量圖、海冰密度專題圖、極地高空物理圖集、極地地形圖、極地地球物理剖面圖、極地重力異常圖、重力基底深度圖、極地巖系分布地質圖、水深地形圖、極地影像產品等。
OldSQL關系型數據庫主要包括元數據庫、空間數據庫和基礎數據庫。本文中OldSQL關系型數據庫采用Oracle 12g版本進行數據庫設計與實現。
2.1.1 元數據庫設計建模
1.元數據庫概念設計
極地海洋原始數據庫面向極地海洋數據管理人員, 基于元數據導航方式進行管理, 按照數據來源、學科、可公開程度等內容開展數據的歸類和整理, 開展原始數據庫中各類文件清單表、清單索引表、表關聯關系等模型設計。通過元數據庫與原始極地文件建立一一對應關系, 實現原始數據文件的溯源和快速查詢。
2.元數據庫邏輯設計
元數據庫主要記錄了資料的匯交過程信息和在資料庫中的基本管理信息, 是基于模型設計針對字段名稱、字段類型、字段長度、主外鍵等內容開展的數據庫表結構設計。元數據的要素主要包括: 元數據標識、元數據標題、航次名稱、任務名稱、學科類型、觀測儀器、搭載平臺、內容摘要、接收時間、空間范圍、文件數、數據量、資料接收人、匯交單位、載體形式、密級、存放路徑等, 極地考察元數據邏輯設計圖, 如圖2所示。

圖2 元數據庫邏輯設計圖Fig.2.Metadata database logic design diagram
2.1.2 基礎數據庫建模
基礎數據面向極地海洋數據管理人員, 基于業務信息(如項目、航次等)對極地海洋要素進行組織和管理, 要建立數據、航次、設備、時間、空間之間的關聯關系, 數據具有以行為單位, 二維數組表現、強調數據的最小冗余度和最大一致性約束等特點, 所以基礎數據庫采用 OldSQL結構化數據庫設計實現。
1.基礎數據庫概念設計
根據航次、設備類型、學科類型、資料類型、資料格式、數據觀測頻率、數據傳輸頻率等設計數據庫結構, 對海洋各類數據進行概念上的抽象和表達, 用各種對象表示數據內部實體間的關系,確定各個對象、屬性之間的相互聯系和約束。
2.基礎數據庫邏輯設計

圖3 基礎數據庫邏輯設計圖Fig.3.Basic database logic design diagram
2.1.3 空間數據庫建模
空間數據庫主要用于存儲空間特征的矢量、柵格、電子地圖等極地海洋地理信息數據, 傳統基礎數據庫(業務數據)的組織與管理無法滿足基于空間特性的極地海洋信息的空間檢索、分析和可視化等功能,所以采用空間數據庫技術, 根據數據空間特性開展數據要素的組織管理, 實現面向網格的、大數據量的空間信息提取、分析、可視化和數據挖掘等功能[31-32]。
1.空間數據庫存儲模型設計
空間數據模型采用ESRI的Geodatabase數據模型。在統一的空間數據模型中進行矢量與影像數據的模型設計。極地海洋空間數據的管理采用物理存儲層、數據適配層、邏輯展示層等三層構建的管理體系, 如圖4所示。

圖4 極地海洋空間數據存儲模型Fig.4.Polar marine spatial data storage model
1)物理存儲層
物理存儲層存儲各種形式的極地海洋地理信息數據, 包括數據庫二維表、空間數據集及以文件方式存儲的數據。
2)數據適配層
數據適配層連接數據的邏輯組織結構和物理存儲方式, 使復雜多樣的極地海洋地理信息數據能夠獨立于數據的存儲方式, 面向管理應用需要進行邏輯結構組織, 提供數據瀏覽、查詢、提取等服務。
在確定填料前,施工人員要重點檢測施工段的土壤質量,根據實際情況選用最佳的填料進行填充。一般來說,路堤填料有著良好的施工效果,這是由于其填料的滲水性較強,含水量較少。此外,在對路堤填充的過程中,要避免選擇淤泥與雜物填充,要控制填充材料的水分含量。
3)邏輯展示層
邏輯展示層面向最終的用戶。系統向用戶提供靈活的配置能力。用戶可根據不同的應用需求和數據類型, 對邏輯層進行配置和展示。
2.矢量數據建模
矢量數據通過比例尺+坐標系統+圖幅編號/圖名對數據進行管理, 利用 MDB數據作為主數據標識, 匹配圖廓、測線、坐標等空間特征信息,通過 Featureclass、Feature Dataset方式存儲在ArcSDE Geodatabase中, 支持對空間圖層、空間參考、屬性字段、比例尺等信息的自定義操作。
3.柵格數據建模
柵格數據主要包括衛星遙感影像、航空遙感影像、網格DEM產品等。采用資料名稱+格網間距+資料范圍等對數據進行管理, 利用影像或者海底DEM作為主數據標識, 匹配影像、產品空間覆蓋范圍等空間特征信息, 柵格數據建模支持面向多種空間數據源的各種柵格目錄模型的定義,采用 Mosaic Dataset方式進行存儲, 并生成FOOTPRINT服務通過ArcSDE Geodatabase中相應的空間數據庫表實現數據訪問和查詢檢索。
NewSQL數據庫面向數據分析處理人員, 采用海量并行處理(Massively Parallel Processing,MPP)技術, 構建分布式并行數據庫集群, 為超大規模的極地數據管理提供大數據高性能計算、綜合分析應用等技術支撐。NewSQL數據庫采用按列或按行混合存儲數據, 每張表或表分區可以根據應用需要, 分別指定存儲和壓縮方式, 并行數據庫設計難點在于數據均勻分布、數據壓縮存儲技術、數據索引技術研究。
2.2.1 數據均勻分布策略
按照極地海洋數據特征, 進行數據庫表結構設計, 按照數據均勻分布策略, 盡可能將數據均勻分布在每一個節點上, 盡量避免某個服務器節點壓力過大, 最大限度發揮每個硬件設備性能,常用的分布方法有哈希分布方法和隨機分布方法,本文采用 Hash分布策略將數據表按行均勻分布至相應的數據庫節點上。
首頁按照時間、范圍、值域劃分表分區, 建立數據庫分區表(圖5), 分區表建立的sql語句:
Create table table_name (dt date, num int) distributed by (dt)
然后依據哈希分布算法把相同的記錄在同一個Segment節點, sql語句:
create table table_name distributed by (column[,…])

圖5 數據均勻分布邏輯圖Fig.5.Data distribution logic diagram
2.2.2 并行數據檢索技術研究
通過 Hash分布策略實現極地海洋數據表按行均勻分布至服務器節點, 基于列式存儲形式,利用數據壓縮算法對每列數據進行壓縮存儲, 建立B-Tree數據庫索引技術, 實現數據庫索引建模,為數據的并行檢索和分析操作提供技術支撐。
NoSQL數據庫面向數據挖掘分析處理人員,針對非結構化極地海洋數據文件, 采用分布式體系架構, 構建基于列式存儲、可伸縮的分布式數據庫, 實現對極地海洋文件、音視頻文件、海洋時間序列數據等資料的關聯分析、聚類分析、深度學習。
NoSQL數據庫設計難點在于數據索引設計, 優化的數據索引模型是提高數據查詢檢索速度的關鍵。常見的索引技術有單個索引和組合索引, 當查詢條件過多時, 單索引技術存在全表掃描次數過多,導致查詢速度越來越慢等缺點; 當查詢條件冗余過多時, 組合索引技術存在系統存儲壓力過大等缺點。
根據極地海洋數據文件特性, 本文提出基于序列號和基于條件項的多級索引模型設計(圖6,圖7), 基于序列號檢索是通過觀測站名稱或者站代碼進行檢索, 而基于條件項的檢索是通過數據描述信息, 如觀測單位、數據名稱、觀測要素等,基于數據實際應用需求, 開展基于 Hadoop技術框架下的多級數據索引模型設計。

圖6 多級索引模型設計(第一級)Fig.6.Multi-level index model design(first level)

圖7 多級索引模型設計(第二級)Fig.7.Multi-level index model design (second level)
面向不同用戶層的業務需求, 基于“OldSQL+NewSQL+NoSQL” 混搭數據庫模式, 實現了多級別、多層次、多主題的數據檢索與應用服務。
3.1.1 元數據導航檢索
基于極地元數據庫, 參照文獻檢索的方式,開展數據的查詢檢索與服務, 用戶可通過模糊查詢、精確查詢、多條件組合查詢等形式, 實現元數據的快速導航。
3.1.2 數據地圖空間漫游
基于極地基礎數據庫、空間數據庫, 提供地圖實時縮放、全圖顯示、坐標定位、地名定位等功能, 實現海量極地空間數據的快速瀏覽, 及遙感影像數據的讀取及瀏覽。
3.1.3 主題數據檢索
基于并行數據庫, 提供多主題極地綜合分析數據的查詢檢索, 并提供航次軌跡路線圖、網格分布圖(圖8)、時間分布圖等可視化展示, 便于用戶進一步的綜合分析應用。

圖8 極地物理海洋網格分布圖Fig.8.Polar physical ocean grid map
3.2.1 實驗測試環境
軟硬件測試環境: 并行數據庫集群是由配置相同的Dell R910服務器組成, 服務器具體配置:CPU為 Intel Xeon E7-4807 1.86 GHz, 內存容量16 GB, 每臺服務器配備3塊SAS硬盤, 容量300 GB,網絡環境為千兆局域網。
實驗測試數據: 實驗數據根據極地調查資料模擬, 數據格式為文本文件, 總數據量大小約2.6 GB。
3.2.2 查詢響應對比
以溫鹽、海流和氣溫要素為測試用例, 以傳統結構化存儲方式與NewSQL并行存儲方式對比,測試執行查詢語句的響應時間。其中溫鹽記錄約700萬條, 海流記錄約80萬條, 氣溫記錄約3萬條。數據查詢響應時間對比圖, 如圖9所示。

圖9 查詢響應性能對比圖Fig.9.Query response performance comparison chart
本文通過分析極地海洋數據的特點及應用需求, 采用“多種架構支持多類應用”的混搭數據庫存儲模式, 將通過極地科考、國際交換獲取及加工處理后的所有元數據、空間數據、矢量數據、柵格數據、事件序列數據、成果數據等, 開展數據分類、分層體系設計, 通過開展數據庫建模、清單索引、多級索引、空間關聯關系等設計, 開發數據庫查詢檢索功能, 滿足用戶對極地海洋數據的查詢檢索、可視化展示、高性能計算、關聯分析等需求, 實現極地海洋數據的科學管理和有效應用。