李研研,王凱
吉林省地礦信息中心,吉林 長春 130061
大數據是在二十世紀八十年代由全球知名咨詢公司麥肯錫在研究報告中首次提出,在該研究報告中定義大數據為通過網絡技術對數據進行獲取、處理、分析,從中提取到海量的有價值的交易數據或傳感數據。當前城市地質工作,同樣要面對各種復雜類型數據的采集、挖掘、處理、分析、應用問題,這些均與“大數據”的目的不謀而合。城市地質資料應該是“大數據”的重要組成部分。對城市地質資料進行數字化,并通過大數據的疊加分析,規律判定、可視化操作等程序,可以更加有效的支撐國土空間規劃、土地開發利用管理、地質災害防治救援、城鎮開發基礎等地質信息輔助應用服務。
城市地質資料大數據存儲可以對所有城市地質資料數據綜合考量,分類施策,對癥下藥,整合梳理,有效地解決城市地質資料“數據孤島”問題。對于原始城市地質靜態數據,可以將數據帶進程序,對于動態數據,可以帶程序進數據。對于結構化數據可以使用關系數據庫技術來處理,對于非結構化數據則要用NoSQL(非關系型的數據庫)來處理。所有的地質數據庫存儲設計主要是結合業務場景將用到的所有數據進行抽取分類存儲管理,按照結構化數據存儲、非結構化數據存儲、空間數據存儲以及動態監控數據的存儲,設計幾種方式進行混合存儲設計。
結構化數據采用關系型數據庫進行管理,存儲數據主要為地質矢量圖形表和地質業務屬性表等二維關系結構數據。
將非結構化數據本身存儲在內存介質上,非結構化數據元數據(如文件路徑、文件名、文件格式、文件大小等)存儲到數據庫表中,并與對應空間數據對象建立關聯關系,降低數據庫資源消耗的同時也減輕了數據維護的壓力。
(1)非關系型數據庫存儲(NoSQL)。存儲數據可包括切片數據緩存、日志緩存數據。
(2)分布式文件系統(HDFS)。分布式文件系統存儲數據可包括辦公文檔、地質報告、文本、圖片、圖像、音頻、視頻信息等格式數據。
1.3.1 矢量數據存儲
主要采用GIS空間數據庫+關系型數據庫來對空間數據進行物理存儲設計。矢量空間數據采用關系型數據庫RDBMS+空間數據庫引擎等方式進行存儲。存儲數據包括工作區以往區域地質圖、構造地質圖、基巖地質圖,調查區已有的遙感影像、地球物理、地球化學和礦區大比例尺填圖等提供全局總貌和揭示隱伏信息的各種矢量資料。
1.3.2 柵格數據存儲
對于遙感影像等柵格類數據由于數據量巨大,直接存儲到數據庫中不僅增加了數據庫運行壓力,同時柵格數據本身的讀取速度也會大大降低。將體量巨大的柵格數據本身保留在數據庫外部而僅在數據庫中保存數據的引用。不僅便于柵格數據的管理和查詢,同時能夠提供高級柵格查詢功能以及實施函數處理,還可用作提供影像服務的數據源。
1.4.1 實時監測數據
實時監測數據主要包括平臺中的結構化數據如站點信息、用戶信息等數據以及傳感器采集到的環境監測數據。這兩類數據均可以采用關系形數據庫進行存儲。
1.4.2 歷史數據的管理
動態監測數據不緊需要支持可視化及智能化分析,還需要支持對歷史數據查詢和回滾。系統需要接受多種類型終端設備采集上報,數據刷新較快、只用關系型數據庫來存儲會出現數據量增長過快、系統故障時會導致系統數據丟失。因此還需要對所有采集的原始數據進行備份。采用基于分布式的NoSql數據庫來存儲,能夠滿足存儲效率、數據庫擴容、數據冗余備份以及與實時數據庫進行數據同步等多個方面的需求, 可以將監測設備采集的數據及設備狀態信息記錄到NoSql類型的數據庫中。
元數據管理按照中國地質調查局提出的元數據標準,對地質相關數據進行統一描述,包括元數據基礎信息、標識信息、數據質量信息、空間參照系信息、分發信息、內容信息、聯系單位等進行描述。其主要功能包括新建元數據、導入元數據、導出元數據、刪除元數據、關聯元數據、編輯元數據、元數據查詢等(圖1)。

圖1 元數據管理主界面
提供對元數據的初始創建功能,通過選定目錄樹節點,實現創建元數據功能。
通過將符合標準的元數據壓縮成文件拖放到界面中,實現對元數據的批量導入和創建。
通過對選擇的元數據進行導出操作,實現將元數據導出為符合標準的元數據文件壓縮文檔。
實現將當前選擇的元數據記錄從數據庫中刪除的操作。
通過選擇元數據和附件文件,自動將當前的元數據信息與附件文件關聯起來,當查看元數據時,可以看到關聯的文件內容。
通過選擇的元數據,進行編輯元數據元素的屬性值,包括元數據基礎信息、標識信息、數據質量信息、空間參照系信息、分發信息、內容信息、聯系單位等,實現對元數據信息的修改和更新。同時提供編輯中的后退、撤銷和保存功能(圖2)。

圖2 編輯元數據
通過在目錄樹中輸入的關鍵字進行檢索,得到符合要求的元數據,然后可以進行查看、編輯、刪除、關聯、導出等操作。提供元數據目錄和樹狀圖兩種顯示方案(圖3)。

圖3 元數據查詢
城市地質大數據來源具有多源異構、海量、多比例尺、多時空尺度的特點,因此,在傳統幾種數據庫引擎的基礎之上,針對城市地質數據的特點,還可以更加精細的采用構建分布式數據庫引擎進行管理,其集成整合了多種開源分布式數據庫和文件系統,分別用來存儲和管理關系型數據、切片型數據、實時型數據和非結構化數據,形成針對地質大數據應用場景相關的解決方案。
傳統關系型數據庫在存儲海量矢量數據時,只能部署在單個服務器上,無法承受海量數據的存儲和查詢請求,尤其是對于對象個數超過千萬條的復雜空間數據,其性能會急劇下降。PostgreSQL是一個功能強大的開源關系型數據庫,其具備矢量點線面的高效存儲和查詢的能力,并且可以構建分布式的數據庫集群。通過將PostgreSQL集成可實現海量矢量數據的分布式存儲,將傳統數據庫的復雜表進行數據分塊分節點,同時可控制每個存儲節點的數據量在千萬條左右,在此基礎之上利用空間索引分區技術實現快速查詢,最終有效解決傳統關系型數據存在的瓶頸問題。
MongoDB是一個基于分布式文件存儲的數據庫,它是一個跨平臺的、面向文檔的數據庫,旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB支持的數據結構非常松散,因此可以存儲比較復雜的數據類型。MongoDB最大的特點是支持查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫表查詢的絕大部分功能,而且還支持對數據建立索引。MongoDB數據庫主要用來存儲柵格瓦片、矢量瓦片及三維瓦片等。
ElasticSearch是一個開源的搜索引擎,建立在全文搜索引擎庫Apache Lucene上。Apache Lucene被認為是當下最先進、高性能、全功能的搜索引擎庫。但它僅僅是一個庫,為充分發揮其功能,需要使用Java并將其直接集成到應用程序中。ElasticSearch實現了隨時可用和按需擴容。ElasticSearch真正的擴容能力來自水平擴容,即通過為集群添加更多的節點,并將負載壓力和穩定性分散給這些節點來實現。
ElasticSearch主要用來進行流數據的存儲,它提供了一個分布式多用戶能力的全文搜索引擎,主要應用于云計算環境中,能夠達到實時搜索、穩定、可靠、快速的功能需求。
HDFS是Hadoop分布式系統體系結構中的核心,主要實現了分布式文件系統。HDFS在處理超大文件上非常有優勢,而且支持流式的訪問數據,它的設計建立在“一次寫入,多次讀取”任務的基礎上。HDFS中,一個數據集如果由數據源生成,就會被復制分發到不同的存儲節點中,響應不同的數據請求。
3.4.1 實時數據存儲創建及配置
傳統關系型數據庫不適用于海量實時數據的存儲和分析,主要原因是實時數據具有數據海量、結構單一、存儲和交互速度頻繁等特征,如何有效實現實時數據的采集、存儲和檢索是實時數據的難題。實時數據具有持續產生、實時動態更新等多種特點,它需要持續的更新數據庫記錄,前端應用中也需要實時展示最新狀態,而這種更新頻率通常是秒級或者是分鐘級的,而傳統的、靜態的GIS數據更新頻率,可能會每半年或一年,或者更長的周期,才會集中大規模的更新一次數據。
3.4.2 關系數據存儲創建及配置
傳統關系型數據庫在存儲海量矢量數據時,只能部署在單個服務器上,無法承受海量數據的存儲和查詢請求,尤其是對于對象個數超過千萬條的復雜空間數據,其性能會急劇下降。PostgreSQL是一個功能強大的開源關系型數據庫,其具備矢量點線面的高效存儲和查詢的能力,并且可以構建分布式的數據庫集群。通過將PostgreSQL集成可實現海量矢量數據的分布式存儲,將傳統數據庫的復雜表進行數據分塊分節點,同時可控制每個存儲節點的數據量在千萬條左右,在此基礎之上利用空間索引分區技術實現快速查詢,最終有效解決傳統關系型數據存在的瓶頸問題。
3.4.3 瓦片數據存儲創建及配置
傳統關系型數據庫存儲海量切片數據時,存在硬盤I/O讀寫瓶頸,另外為了維護數據的一致性,也會犧牲很大的讀寫效率,從而導致切片數據的并發讀取速度無法滿足應用需求。MongoDB是一個基于分布式存儲的NoSQL型數據庫,其介于關系型數據庫和非關系型數據庫之間,所支持的數據結構非常松散,可以存儲比較復雜的數據類型。集成MongoDB后,將其作為切片數據的存儲引擎,能夠實現億級切片數據的存儲,可方便的復制遷移以及秒級的并發訪問,實現了切片數據的高性能存儲和讀取,有效地解決切片數據的高并發讀取瓶頸。
3.4.4 分布文件存儲創建及配置
通過基于HDFS的數據引擎,HDFS是Hadoop分布式系統體系結構中的核心,主要實現了分布式文件系統。創建分布式文件存儲即是指定HDFS數據庫的過程。
3.4.5 Hbase文件存儲創建及配置
Hbase是一種構建在HDFS之上的分布式、面向列和提供高可靠性、高性能、可伸縮、實時讀寫的開源數據庫系統,適用于需要實時讀寫、隨機訪問超大規模數據的場景。其基于分布式架構,即使單點出現故障,整個集群也不會受到影響,服務可用性高;采用Google的BigTable的核心設計理念,管理PB級數據,擴展能力強,當Hbase的性能不足,可以通過增加Hbase的服務器數量來提高性能,而且增加服務器對外部應用來說都是透明的,外部應用不會有任何感知,不需要修改任何東西。自動分片技術,當數據寫入時根據節點存儲情況自動切分數據,重新分布。Hbase具有超高效的數據讀寫能力,數據寫入時,都會先存儲在內存中,當內存達到一定數值時才會寫入磁盤中。當數據還在內存時,可以進行修改、查詢,直接在內存中操作,非常高效。在Hbase中,所有涉及到數據的更改操作,都是優先使用內存中的數據,減少了I/O時間,使整個系統保持高讀寫的性能。創建Hbase文件存儲就是安裝Hbase數據庫的過程和指定存儲路徑。
3.4.6 數據轉換ETL工具
數據轉換是通過ETL工具實現的,ETL(Extract, Transformation, Load)是清洗、轉換、加載,用戶用數據源抽出所需的數據,經過數據清洗、轉換,最終按照預定義好的數據倉庫模型,將數據加載到數據倉庫中去,使用GIS點圖層地名和地名地址數據庫之間的數據、實時數據與GIS要素數據之間的轉換。
為適應現代化大數據時代的挑戰,簡單、經濟,有效的地質數據信息化管理有利于推行大數據技術標準體系化,促進地質資料信息化的進程。為推動地質大數據綜合開發利用,整合多年來積累的原始地質成果資料,建立系統一體化、數據集成化、信息綜合化和成果可視化的地質大數據平臺,促進行業數據共享與整合,為實現地質勘查業務信息化、管理信息化、服務信息化提供理論依據[2]。