專利名稱:一種空間數據集群存儲系統及其數據查詢方法
技術領域:
本發明屬于通信技術領域,特別涉及一種空間數據集群存儲系統及其數據查詢方法。
背景技術:
對空間數據進行合理的利用和管理可以提高生產率,這已成為科學家、管理人員以及商務專家的共識,但是人類生活中80%數據都與空間數據有關所導致的空間數據的海量特性以及空間數據與其他形式的數據相比自身具有的結構復雜、相互之間關系復雜等特征使得人們越來越認識到空間數據存儲與管理的特殊性和重要性。近年來,隨著數字地球和數字城市等概念和系統原型的開發,空間數據在存儲和管理方面出現了新的發展趨勢。例如以構建數字地球系統為例,1米分辨率影像覆蓋廣東省,大約有1TB的數據,而廣東才是中國的1/53,如果要建立起中國的數字地球,僅僅影像數據就有53TB,這還只是一個時刻的,多時相的動態數據,其容量甚至可以高達PB級。海量空間數據的增長由量變將會引起的質變,對空間數據的存儲與管理提出了新的挑戰。隨著TB級乃至PB級空間數據庫越來越頻繁在空間應用中出現,空間數據的這種量變使空間數據庫的處理性能和擴展性成為解決大型空間應用所迫切需要解決的首要問題。目前的解決方法,通過并行數據庫來提供高性能和可擴展性,但是并行數據庫價格昂貴、結構復雜和管理困難,雖然并行數據庫已經有二十多年的歷史,但是仍然不能得到推廣,現有通信技術領域尚未出現有效的替代方案。
發明內容
本發明目的在于解決現有技術不足,提供海量空間數據的存儲管理方案。
為實現上述目的,本發明提供的空間數據集群存儲系統,包括以下組成部分包括以下組成部分,空間應用客戶端,用于為空間應用接入系統提供接口服務;空間對象管理器,用于編譯、解析空間查詢語句,分解查詢任務以及管理空間對象存儲設備集群;空間對象存儲設備集群,用于TB級或TB級以上海量空間數據的存儲,提供并行的數據傳輸和并行的查詢處理能力;所述空間對象存儲設備集群由多個空間對象存儲設備組成,空間對象存儲設備用于實現具有數據庫意識的存儲,提供空間數據對象粒度存取訪問,提供空間查詢處理和索引的能力。
而且,空間對象存儲設備中的空間對象存儲結構包括對像ID、長度、屬性個數、屬性向量、屬性偏移向量和屬性值。
而且,空間應用客戶端由空間應用接口、對象緩沖區管理器和遠程過程調用組成。
而且,空間對象管理器由空間查詢語句解析器、查詢優化器、空間數據劃分器、空間對象目錄庫和遠程過程調用組成。
而且,空間對象存儲設備集群由多個空間對象存儲設備組成,空間對象存儲設備內建對面向對象的空間數據模型的支持,并支持數據庫系統的并發控制、日志與恢復管理和索引機制功能。
而且,空間對象存儲設備內建的面向對象模型包括提供點、線、面和復雜幾何體的抽象數據模型,針對基于對象關系模型建立的空間數據表實現表到空間對象存儲設備中的集合對象的映射,表中的元組映射為空間存儲對象。
本發明還提供了上述空間數據集群存儲系統的數據查詢方法,其過程是空間應用接入系統將請求發給空間應用客戶端,空間應用客戶端將查詢請求通過RPC機制傳遞至空間對象管理器,空間對象管理器負責解析和編譯查詢請求,制定查詢計劃并分發至空間對象存儲設備集群中的空間對象存儲設備,各空間對象存儲設備將結果并行傳輸至空間對象管理器,空間對象管理器整理查詢結果提交給空間應用客戶端,空間應用客戶端再返回至空間應用。
本發明基于對象存儲設備及其集群理論構造了空間數據集群存儲系統(Geospace Object Store,GOS),并實現空間數據在對象存儲設備中的組織方式,提供了一種具有低花費、高性能、高可用性和高可擴展性的空間數據存儲與管理方案。本發明的空間數據集群存儲系統能夠適應空間數據海量增長的發展趨勢,引入了對象存儲具有的優良特性,遵循存儲設備智能化與網絡化的應用趨勢,從存儲的體系結構角度解決了海量空間數據的存儲管理問題。并且設計了存儲空間數據的數據組織結構,通過擴展對象存儲設備用戶對象,使其具有空間語義來實現空間存儲對象,是空間數據這類結構復雜類型的數據存儲最佳形態。本發明還提供了空間數據集群存儲系統的數據查詢方法,解決了用戶從空間數據集群存儲系統提取數據的需求,完善了從存儲到提取數據的過程,。
圖1是本發明中空間數據集群存儲系統結構圖;圖2是本發明中系統的查詢數據處理流程圖;圖3是本發明實施例空間應用客戶端結構圖;圖4是本發明實施例中空間對象管理器結構圖;圖5是本發明實施例中空間對象存儲設備結構圖;
圖6是本發明的空間對象存儲結構。
具體實施例方式
參見附圖1,本發明提供的空間數據集群存儲系統,包括以下組成部分空間應用客戶端1,用于為空間應用接入系統提供接口服務;空間對象管理器2,用于編譯、解析空間查詢語句(一般采用空間SQL語句),分解查詢任務以及管理空間對象存儲設備集群;空間對象存儲設備集群3,用于TB級或TB級以上海量空間數據的存儲,提供并行的數據傳輸和并行的查詢處理能力。所述空間對象存儲設備集群3由多個空間對象存儲設備(sosd1、sosd2…sosdn)組成,空間對象存儲設備用于實現具有數據庫意識的存儲,提供空間數據對象粒度存取訪問,提供空間查詢處理和索引的能力。以上各部分之間建立網絡連接,如果具體實施時采用千兆交換機,所述空間對象存儲設備集群3中可設置的空間對象存儲設備數目n為10個,萬兆交換機可以提供上百個接點,可設置的數目相應提高。本發明的技術方案主要針對TB級~PB級海量空間數據的存儲管理,但更高級別的數據量也可采用此方法。
基于對象的存儲(Object-based Storage,OBS)是存儲領域研究的一個新熱點,被人們稱為下一代的存儲系統,具有高性能、高擴展、高可用和高安全等特性。對象存儲源于存儲設備智能化和網絡化的發展理念,充分融合NAS(網絡附加存儲設備)和SAN(存儲區域網絡)兩種存儲方式的優點,在存儲設備中利用內部CPU的處理能力來直接支持結構化數據的存儲,以減少服務器的工作負載,提高系統的可用性。存儲設備以存儲對象為基本數據單元并以對象為設備接口,存儲對象是可變長的,可以動態的擴大和縮小,對象接口具有文件接口和塊接口兩者的特征。存儲設備具有的這些特征導致了存儲系統結構性的改變,一方面是存儲系統的管理如文件系統或數據庫系統功能在服務器和存儲設備上得到重新劃分,使上層更集中于數據操作的管理,將存儲管理工作下移到存儲設備上,提高上層數據操作處理的效率;另一方面因為提供對象粒度的數據共享,使數據通路和控制通路分離,使得多個對象存儲設備能夠組成集群存儲系統,提供海量的存儲空間和并行的數據傳輸機制。對象存儲支持的變長數據的存儲和動態的縮小與擴大特性,適合空間數據這類結構復雜類型的數據的存儲,同時具有的可擴展性、高性能特點能適應空間數據的海量增長的需要。
基于對象存儲的思想是利用存儲設備的智能性,使數據存儲的部分管理功能下移到存儲設備,同時改變存儲接口,使存儲設備上管理的不再是數據塊和文件,而是具有文件和塊兩者特征的存儲對象,存儲設備接口從傳統的文件或者塊演變為存儲對象接口。接口的改變,使得上層應用可以將更多的語義信息下放到存儲設備上,有利于存儲設備更好的組織空間,為上層應用提供更好的服務,同時也使得上層應用可以將更多的處理功能下放到存儲設備上。借鑒對象存儲的思想,本發明做以下擴充將空間語義信息下放到存儲設備上,使得存儲對象是具有空間語義信息的空間對象;利用基于對象存儲設備(OSD)具有的智能性,將數據庫服務器上的部分功能下放到基于對象存儲設備上,使得數據庫服務器的功能得到重新劃分,數據庫服務器專注于空間查詢的優化處理工作;利用對象存儲系統具有的可擴展性特點,實現空間對象的集群存儲,提供并行的空間數據查詢處理能力,解決海量空間數據的存儲問題和處理效率問題。本發明的技術方案是一種新的海量空間數據存儲管理思路建立了具有數據庫意識的存儲系統,存儲設備不再是塊數據的容器,也可以用于提供滿足上層數據庫需要的一些功能。并且空間對象存儲設備提供空間數據對象粒度而不是塊粒度的存取訪問,在存儲設備上提供空間查詢處理和索引的能力,使得數據處理工作更靠近數據,減少了網絡的數據傳輸量。
參見圖2,提供了本發明提供了空間數據集群存儲系統的數據查詢方法,空間數據查詢處理過程由以下幾步組成,空間應用接入系統將請求(Query)發給空間應用客戶端1,空間應用客戶端1將查詢請求通過RPC機制傳遞至空間對象管理器2,空間對象管理器2負責解析和編譯查詢請求,制定查詢計劃并分發至空間對象管理器集群3中的空間對象存儲設備(sosd1、sosd2…sosdn),各空間對象存儲設備(sosd1、sosd2…sosdn)并行執行查詢計劃,將結果(Result)并行傳輸至空間對象管理器2,空間對象管理器2整理查詢結果提交給空間應用客戶端1,空間應用客戶端1再返回查詢結果至空間應用接入系統。具體實施時,若要求查詢響應速度,也可以由空間對象存儲設備(sosd1、sosd2…sosdn)將結果直接傳輸至空間應用客戶端1,而不經空間對象管理器2進行回送轉發。
在圖3、4、5中,根據本技術領域習慣按層次提供了空間數據集群存儲系統各部分的構成以便實施參見圖3,本發明實施例中的空間應用客戶端1主要包括空間應用接口、對象緩沖區管理器、遠程過程調用。空間應用客戶端1主要負責為空間應用(如GIS等)提供訪問空間數據集群存儲系統接口,其空間應用接口部分將空間查詢提交至空間對象管理器2并接收來自空間對象管理器2的查詢結果數據返回給空間應用。空間應用客戶端1提供頁緩沖管理機制,其對象緩沖區管理器部分緩沖包含從空間對象管理器2中獲取的查詢結果頁面并充當本地空間應用進程的代理,本地空間應用將空間查詢請求發給空間應用客戶端1,空間應用客戶端1通過RPC將請求發送給空間對象管理器2,獲取查詢結果返回給空間應用。空間應用客戶端1具體實施時可通過改進Shore server實現,將Shore server中的SVAS(shore的插值服務端)實現為一個空間查詢語句解析器(空間查詢語句采用SQL語句時,相應采用GSQL server),其遠程過程調用部分為后端提供一個傳遞SQL語句的接口。此處后端是指由空間對象管理器2和空間對象存儲設備集群3組成的空間對象存儲管理部分。注明本發明所用shore是一種目前本領域常用開源項目,具體實施時可參見http://www.cs.wisc.edu/shore/。
參見圖4,本發明實施例中的空間對象管理器2主要包括GSQL解析器、查詢優化器、空間數據劃分器、空間對象目錄庫和遠程過程調用。因為系統內各部分之間建立網絡連接進行信息傳遞,因此實施時各部分都設置相應遠程過程調用部分和網絡連接實現部分,可以采用已經廣泛使用的TCP/IP網絡。為了在系統內進行數據處理,空間對象管理器2將面向對象的數據庫管理系統中的功能進行重新劃分,下移數據的存儲管理功能至空間對象存儲設備集群3上,同時利用空間對象存儲設備集群3的智能處理能力和對象接口特性將查詢處理的執行下放到存儲設備上。空間對象管理器2將數據庫服務器的存儲管理、查詢的執行、事務管理和并發控制功能下放到空間對象存儲設備(sosd1、sosd2…sosdn)上,空間對象管理器2主要負責查詢編譯和查詢計劃的分解,并記錄空間對象在多個空間對象存儲設備(sosd1、sosd2…sosdn)上分布的目錄信息,為空間查詢計劃的制定提供全局信息。
空間對象管理器2接收來自用戶的請求,通過GSQL解析器將查詢處理操作分解到多個空間對象存儲設備(sosd1、sosd2…sosdn)上并行執行,其處理過程如下空間對象管理器2接收空間應用客戶端1發送的查詢請求,交給查詢優化器實施語法分析、語義檢查、查詢優化(生成最優的執行規劃)和代碼生成(生成可執行代碼)。查詢優化器對各種執行策略進行比較,既考慮并行度的大小,也考察通信量和I/O開銷,且充分利用多個空間對象存儲設備的空間對象數據分區信息,最終選用最小代價的查詢規劃。具體實施時,查詢優化器可基于Opt++實現,通過Opt++對具有空間謂詞和點、線和面等抽象數據類型的GSQL語句進行編譯,并實現查詢請求分解,生成多個子請求,最后通過底層通信子系統向有關空間對象存儲設備發送子請求。底層通信子系統采用Sun PRC實現。注明Opt++是一個面向對象的非線形優化庫,具體實施可參見http://csmr.ca.sandia.gov/opt++/。SUN RPC是SUN公司開放的遠程調用庫,已經成為遠程過程調用實現一種公認的實施方案。
空間對象信息庫,記錄空間對象存儲設備集群3上空間對象分布的全局信息,如空間對象名、對象的ID號、對象存放的空間對象存儲設備IP地址和對象的長度等信息,由多個空間對象形成的表關系信息、表中各字段的屬性信息和點、線和面等的抽象數據類型信息,空間對象信息庫由LDAP server來實現。注明LDAP是輕量級目錄訪問協議,LDAP server在操作系統內一般都內建支持,可以直接搭建。
空間數據劃分器,實現空間數據表中空間對象在多個空間對象存儲設(sosd1、sosd2…sosdn)備上的數據劃分,本發明具體實施時可實現多種數據劃分算法,針對一般屬性的哈希算法Hash和輪叫算法Round-robin,并針對空間數據的幾何屬性實現了基于Hibert曲線數據劃分算法。
本發明實施例中的空間對象存儲設備集群3由多個空間對象存儲設備(sosd1、sosd2…sosdn)采用集群方式實現。參見圖5,空間對象存儲設備具體實施時可由OSD擴展結構實現對象接口和對象存儲管理是由OSD設備已實現的部分,經擴展在存儲設備上實現對數據庫系統的事務管理(并發控制在事務管理里實現,是事務管理的功能模塊之一)、日志與恢復管理和空間索引機制的支持。具體實施時可通過改造shore的Storage Manager來實現,將Storage Manager中的卷管理替換為OSD中的對象存儲服務模塊實現,保留其事務管理、日志與恢復管理和B+和R*索引機制。空間對象存儲設備集群3接收空間對象管理器2的執行命令,查找對象緩沖區里是否存在查詢處理所需的空間對象,存在則直接處理并將處理結果提交給空間對象管理器2,否則根據對象ID從設備上讀取所需對象數據進行處理。在進行空間查詢處理過程,利用空間對象存儲設備(sosd1、sosd2…sosdn)上提供的B+和R*索引機制提高空間選擇、空間投影、空間連接和分組等操作的執行效率。子請求執行接口是空間查詢執行的函數庫,提供空間選擇、空間投影、空間連接和分組功能。存儲介質是空間對象存儲設備的最低層,主要指磁片或磁帶。
在OSD中,基本的存儲類型是用戶對象,用戶對象是存放用戶數據的容器,所用用戶對象都是通過分組存放在分區對象中(partition object),分區對象負責尋址、磁盤配額管理和用戶對象的安全管理,每個用戶對象僅僅屬于一個分區對象。為了便于對用戶對象進行快速索引和多個用戶對象的操作,一個分區對象下,可以建立多個集合對象(collection object),將分區對象下的用戶對象進一步分組。集合對象是一個邏輯概念,并不指物理上一組用戶對象的聚集,而是通過指針實現多個用戶對象的集合。根據OSD的這種層次結構特征,本發明將空間數據表映射為集合對象,表中的空間數據元組映射為空間對象。空間對象通過擴展OSD中用戶對象,使其具用空間語義,其實現分兩步實施,首先建立元對象區,元對象區存放支持的數據類型的結構定義和描述,包括int、float、char、string等基本數據和點、線、面和復雜幾何體這些抽象空間數據類型的結構定義,同時還存放空間數據關系表的表模式。空間數據類型遵照OGC規范實現。這些元對象也由OID進行唯一標識。第二步,按照T10/OSD草案,在OSD對象存儲設備中基本的存儲單元用戶對象是一個無結構的數據塊,而在本發明的空間對象存儲設備中,基本的存儲單元是有結構的空間對象。注明OGC,The Open GeospatialConsortium;T10/OSD指T10技術委員會的OSD標準,參見http://www.t10.org/。
參見圖6,本發明設計空間對象存儲設備中的空間對象的存儲結構包括OID,長度,屬性個數,屬性向量,屬性偏移向量,屬性值。OID是對象的ID,在SOSD中根據對象的OID進行空間的訪問,長度代表整個空間對象的存儲長度,屬性個數存放空間對象屬性的個數,屬性向量存放空間對象各個屬性類型的OID,屬性偏移向量存放每個屬性值的起始偏移位置,屬性值存儲區存放空間對象中各屬性的值。
權利要求
1.一種空間數據集群存儲系統,其特征在于包括以下組成部分,空間應用客戶端,用于為空間應用接入系統提供接口服務;空間對象管理器,用于編譯、解析空間查詢語句,分解查詢任務以及管理空間對象存儲設備集群;空間對象存儲設備集群,用于TB級或TB級以上海量空間數據的存儲,提供并行的數據傳輸和并行的查詢處理能力;所述空間對象存儲設備集群由多個空間對象存儲設備組成,空間對象存儲設備用于實現具有數據庫意識的存儲,提供空間數據對象粒度存取訪問,提供空間查詢處理和索引的能力。
2.如權利要求1所述的空間數據集群存儲系統,其特征在于空間對象存儲設備中的空間對象存儲結構包括對像ID、長度、屬性個數、屬性向量、屬性偏移向量和屬性值。
3.如權利要求1或2所述的空間數據集群存儲系統,其特征在于空間應用客戶端由空間應用接口、對象緩沖區管理器和遠程過程調用組成。
4.如權利要求1或2所述的空間數據集群存儲系統,其特征在于空間對象管理器由空間查詢語句解析器、查詢優化器、空間數據劃分器、空間對象目錄庫和遠程過程調用組成。
5.如權利要求1或2所述的空間數據集群存儲系統,其特征在于空間對象存儲設備內建對面向對象的空間數據模型的支持,并支持數據庫系統的并發控制、日志與恢復管理和索引機制功能。
6.如權利要求5所述的空間數據集群存儲系統,其特征在于空間對象存儲設備內建的面向對象模型包括提供點、線、面和復雜幾何體的抽象數據模型,針對基于對象關系模型建立的空間數據表實現表到空間對象存儲設備中的集合對象的映射,表中的元組映射為空間存儲對象。
7.一種如權利要求1或2所述的空間數據集群存儲系統的數據查詢方法,其特征在于空間應用接入系統將請求發給空間應用客戶端,空間應用客戶端將查詢請求通過RPC機制傳遞至空間對象管理器,空間對象管理器負責解析和編譯查詢請求,制定查詢計劃并分發至空間對象存儲設備集群,空間對象存儲設備集群的多個空間對象存儲設備并行執行查詢計劃,將結果并行傳輸至空間對象管理器,空間對象管理器整理查詢結果提交給空間應用客戶端,空間應用客戶端再返回至空間應用。
全文摘要
本發明屬于通信技術領域,特別涉及一種空間數據集群存儲系統及其數據查詢方法。本發明提供的空間數據集群存儲系統,包括以下組成部分,空間應用客戶端,用于為空間應用接入系統提供接口服務;空間對象管理器,用于編譯、解析空間查詢語句,分解查詢任務以及管理空間對象存儲設備集群;空間對象存儲設備集群,用于TB級或TB級以上海量空間數據的存儲,提供并行的數據傳輸和并行的查詢處理能力;所述空間對象存儲設備集群由多個空間對象存儲設備組成,空間對象存儲設備用于實現具有數據庫意識的存儲,提供空間數據對象粒度存取訪問,提供空間查詢處理和索引的能力。本發明提供了具有低花費、高性能、高可用性和高可擴展性的空間數據存儲與管理方案。
文檔編號G06F17/30GK101038590SQ20071005186
公開日2007年9月19日 申請日期2007年4月13日 優先權日2007年4月13日
發明者喻占武, 鄭勝, 李忠民, 潘少明, 李銳, 胡濱 申請人:武漢大學