王艷喜 濰坊學院計算機工程學院
近幾年,隨著經濟水平以及科技水平的不斷提升,云技術、互聯網技術以及物聯網技術應用進一步廣泛,各類數據信息數量逐漸增大,這為空間數據存儲以及分析帶來了巨大挑戰,傳統關系型的數據存儲凈模式已經無法在日常工作中發揮更大的作用。因此,對基于NoSQL數據庫的空間大數據分布式存儲策略研究有著鮮明現實意義。
就目前我國空間存儲技術發展情況而言,成熟關系型數據庫是空間數據存儲的主流模式,除此之外,集中存儲以及管理空間也是常見模式之一。
立足于空間數據與應用程序之間的關系而言,可以將空間引擎體系總結為以下幾種模式:內置、三層結構以及兩層機構。以上結構應用具有不同效果,但總得來說可以很好的存儲以及處理海量空間數據。
就目前地理信息空間數據發展情況而言,數據量大、種類多已經成為基本特點,傳統空間數據存儲處理系統的單一性、集中性存儲方法已經無法滿足數據處理需求。具體而言,空間數據的大數據轉變,存儲技術也會發展改變:①存儲對象的變化。傳統存儲處理系統,需要面對各類視頻以及音頻文件,但是系統并不擅長對上述信息進行處理。②存儲能力擴展。從存容量角度而言,傳統數據庫無法實現對海量數據的精準維護,并且其本身也不具備良好的擴展性以及橫向延展性。
NoSQL 數據庫在近幾年的發展過程中已經得到了較為廣泛的應用,并且應用效果良好,但是仍然具有一定局限性。例如:在空間數據庫中對數據的修改是常用操作,但NoSQI 二數據庫一般不建議對數據進行修改,不慎重的修改操作甚至會因為引起相關存儲數據的大量遷移而導致性能急劇下降。并且,從實際應用角度而言,NoSQI 二數據庫提供的查詢能力非常有限,即使是內部衍生出來的MongoDB 也不能滿足GIS 常用查詢的需要。
結合傳統空間數據處理情況,本文提出了一個基于NoSQL 數據庫的空間大數據分布式存儲策略,該策略在設計以及應用過程中主要是針對傳統矢量以及柵格等各類移動終端大數據進行存儲與處理。具體的存儲體系分為內存數據庫、關系數據庫以及NoSQL 數據庫三個層級。
空間大數據分布式存儲系統具有良好的數據存儲以及分析能力,可以為使用者提供多種應用功能。從整體角度而言,可以將內部存儲系統以及管理系統概括為以下內容:存儲系統:內存數據庫、傳統關系式數據庫以及分布式數據庫。管理系統:節點管理、數據調度、容錯機制、監控系統以及全局日志管理。
具體應用流程可以總計為以下內容:首先,手機、平板、車載設備移動終端產生信息,這些信息接入到網關;然后傳輸到存儲管理系統;最后在傳統應用的幫助下進行分析數據顯示,例如在線數據更新、空間數據顯示、專題地圖分析以及位置歷史分析結果等。
本文主要是對空間大數據存儲系統進行分析,所以針對三種類型數據庫進行簡要研究:①內存數據庫。該類型數據庫具有較高的應用價值,因為其本身的數據操作速度較快。I/O處理速度大約是傳統數據庫的十倍左右。②傳統關系式數據庫。該數據庫存在的意義在于為整個系統提供數據集中存儲條件以及對外數據顯示功能,促使改進之后的系統仍然具備GIS功效,防止系統部分功能發生退化。③分布式存儲系統。該類系統的基礎是NoSQL 數據庫,在實際應用過程中,可以將其看做為是整個存儲系統的數據大倉。其存在的主要作用為:為空間大數據存儲提供必要能力,例如可擴展性能力、高通量能力等。
2.2.1 存儲實現
對于存儲系統而言,最為基本的功能便是可以完成數據存儲、實現數據存儲,這也是存儲系統設計與構建的基本需求。基于此,本文結合NoSQL 數據庫基本特點以及MongogDB 數據存儲基本特點,構建了一個融合狀態下的數據存儲模式,以求實現數據庫大數據存儲功能。就MongogDB 而言,可以說是建立于NoSQL 數據庫基礎之上的一種數據庫,與各類數據對象之間存在有映射關系,這也是應用MongogDB 可以實現數據存儲的基本原因。例如:空間位置信息存儲中,SQLite:Mem 對應的是的Text、PostgreSQL 對應的是bin、MongogDB 對應的是BSON。
2.2.2 組織結構設計
整個存儲系統中,組織結構設計十分重要,關系著系統應用效果以及質量,為保證存儲系統穩定,本文建議采用MongogDB 中的Replica Set 以及Sharding 兩個集群進行構建。通過實際試驗發現,應用場景對于系統存儲數據質量有著重要影響,基于此,本文根據地理范圍基本限定,進行了外部分片,之后進行Sharding 集群的搭建,這樣可以進一步降低外界環境因素的影響,而Sharding 集群此時可以稱之為滯后集群。
2.2.3 數據快速提取技術
從實際應用角度而言,數據快速提取往往會受到多種因素的影響,例如數據基本組織結構以及空間索引策略等,所謂的空間索引策略其實就是數據提取應用到的具體方法,不同提取方法最終作用效果效果并不相同,所以提取效果也存在差異性,從此角度而言,空間索引策略可以說是影響數據提取速度的根本因素。結合實際應用需求以及測試情況,建議采用元數據多級圖幅索引方式進行設計,因為此種索引方式可以很好的與集群方案相互配合。
2.2.4 數據調度
因為最終構建的空間大數據存在高效分析以及快速處理需求,所以為保證處理與存儲時間,需要做好數據調度,只有數據調度合理,數據提取以及分析才能更加快速。基于此,本文建議將傳統存儲模式設計為“內外存協同”形式。這樣就可以將經常應用到的熱點數據存儲到數據庫中,進一步保證數據庫的高通量,不經常應用的冷數據可以采用歸檔形式存儲到NoSQL 數據庫或者是傳統數據庫當中。
2.2.5 訪問接口設計
訪問接口設計十分重要,因為關系著數據的輸入以及傳輸,如果訪問接口設計質量存在問題,則數據流通將會產生影響,致使整個存儲、處理系統無法正常發揮作用。該方面的設計主要集中在傳統關系式數據庫當中。本文建議,為傳統數據庫提供一個API 端口,改端口中存在一個開源的OGDC。此端口有一個空間數據端口的OD—BC,可以在實際應用過程中為空間數據提供最為基礎的訪問功能,其中不僅包含了Oracle、DB2,而且包含了DM 以及Kingbase 等。除此之外,此種訪問接口設計還為數據并行提供了必要渠道。
綜上所述,隨著數據數量的逐漸增加,空間數據存儲暴露出很多問題,而空間大數據存儲策略的研究便是從各類問題角度入手,以求可以更好的解決大數據存儲、應用以及處理等問題。本文提出了以NoSQL 數據庫為基礎,應用分布式存儲方法,對原有系統進行改進,就實際應用情況而言,上述改進方法可行且效果良好。