一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)裝置、方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及數(shù)據(jù)系統(tǒng)【技術(shù)領(lǐng)域】,具體的講是一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)裝置、方法及系統(tǒng)。其中,存儲(chǔ)方法包括將具有空間特性的數(shù)據(jù)劃分為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間中的數(shù)據(jù);根據(jù)網(wǎng)格空間位置的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)。本發(fā)明的有益效果在于對(duì)于巨量的各種類型空間數(shù)據(jù),可以實(shí)現(xiàn)高并行度的數(shù)據(jù)寫入和讀取,保證按照空間屬性分割的數(shù)據(jù)可以均衡的、保持空間關(guān)聯(lián)的、安全的存儲(chǔ)到各個(gè)節(jié)點(diǎn),同時(shí),系統(tǒng)具有極大的擴(kuò)展能力,而且系統(tǒng)擴(kuò)展與性能是線性相關(guān)的,系統(tǒng)不會(huì)出現(xiàn)大量閑置節(jié)點(diǎn),或者I/O瓶頸節(jié)點(diǎn),實(shí)現(xiàn)了分布式系統(tǒng)設(shè)計(jì)的初衷。
【專利說(shuō)明】一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)裝置、方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)系統(tǒng)【技術(shù)領(lǐng)域】,具體的講是一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)裝置、方法及系統(tǒng)。
【背景技術(shù)】
[0002]分布式數(shù)據(jù)系統(tǒng)經(jīng)過(guò)多年發(fā)展,目前已經(jīng)成為海量數(shù)據(jù)高效率、高可用性、高性價(jià)比存儲(chǔ)和應(yīng)用的重要解決方式,其在推動(dòng)云計(jì)算和大數(shù)據(jù)應(yīng)用上具有舉足輕重的作用。分布式數(shù)據(jù)系統(tǒng)的核心思想是分散數(shù)據(jù)的存儲(chǔ),將數(shù)據(jù)分割成標(biāo)準(zhǔn)的子集,使用多節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)的各個(gè)子集,并將數(shù)據(jù)子集的位置信息存儲(chǔ)到主節(jié)點(diǎn)。在讀取數(shù)據(jù)時(shí),每個(gè)存儲(chǔ)節(jié)點(diǎn)只負(fù)責(zé)提供自己的數(shù)據(jù)子集,由客戶端接口組件負(fù)責(zé)重組各個(gè)數(shù)據(jù)子集,最終提交數(shù)據(jù)文件或記錄。通過(guò)數(shù)據(jù)的分割存儲(chǔ)和分散讀取,可以大大的降低單一節(jié)點(diǎn)的I/o壓力,實(shí)現(xiàn)多節(jié)點(diǎn)的并行讀取,整個(gè)數(shù)據(jù)系統(tǒng)的性能將會(huì)得到極大提升,能夠適應(yīng)現(xiàn)今數(shù)據(jù)急劇增長(zhǎng)和應(yīng)用需求不斷提高的挑戰(zhàn)。
[0003]現(xiàn)有技術(shù)中實(shí)現(xiàn)的分布式數(shù)據(jù)系統(tǒng)主要的處理對(duì)象是數(shù)據(jù)文件或數(shù)據(jù)記錄,本質(zhì)上仍然是一種文件系統(tǒng)或者數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)的擴(kuò)展。因此,當(dāng)前分布式數(shù)據(jù)系統(tǒng)更多的實(shí)現(xiàn)是分布式文件系統(tǒng),文件作為系統(tǒng)的基本處理單元,形成文件子集分散存儲(chǔ)到各個(gè)節(jié)點(diǎn)。分布式文件系統(tǒng)的數(shù)據(jù)分割完全是基于物理切分的,數(shù)據(jù)子集關(guān)聯(lián)的依據(jù)是文件中的位置。同時(shí),在分布式文件系統(tǒng)中,數(shù)據(jù)文件之間是沒(méi)有屬性關(guān)聯(lián)關(guān)系的,數(shù)據(jù)文件及其數(shù)據(jù)子集的存儲(chǔ)位置按照隨機(jī)規(guī)則進(jìn)行分配。系統(tǒng)對(duì)于文件的整體讀寫具有較好的性能,但是按照數(shù)據(jù)屬性,對(duì)文件部分讀取或者多文件關(guān)聯(lián)讀取時(shí),存儲(chǔ)節(jié)點(diǎn)很難維持合理的負(fù)載均衡,會(huì)出現(xiàn)少量節(jié)點(diǎn)承擔(dān)大部分I/o壓力,大量節(jié)點(diǎn)空閑的情況,極大地影響系統(tǒng)性能。
[0004]現(xiàn)有技術(shù)一提供了一種分布式文件系統(tǒng),例如Hadoop分布式文件系統(tǒng)(HDFS),它被設(shè)計(jì)成適合運(yùn)行在通用硬件上的分布式文件系統(tǒng),HDFS能提供高吞吐量的數(shù)據(jù)訪問(wèn),非常適合大規(guī)模數(shù)據(jù)的存儲(chǔ)和應(yīng)用。HDFS以文件為存儲(chǔ)單元,將文件按照固定數(shù)據(jù)塊容量(64MB)進(jìn)行物理分割,采用多拷貝復(fù)制方式,將數(shù)據(jù)塊分散存儲(chǔ)到存儲(chǔ)節(jié)點(diǎn)。HDFS主要由一個(gè)名字節(jié)點(diǎn)和多個(gè)數(shù)據(jù)節(jié)點(diǎn)組成,名字節(jié)點(diǎn)負(fù)責(zé)維護(hù)文件名檢索、確定數(shù)據(jù)塊與數(shù)據(jù)節(jié)點(diǎn)的映射、接受數(shù)據(jù)讀寫請(qǐng)求,按照數(shù)據(jù)流的方式提供數(shù)據(jù)。
[0005]但是本案發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)一至少存在以下不足:首先HDFS系統(tǒng)是文件系統(tǒng)的分布式實(shí)現(xiàn),其處理主體仍然是各個(gè)獨(dú)立的文件,因而不能稱為真正的數(shù)據(jù)系統(tǒng);其次,面對(duì)具有明顯屬性關(guān)聯(lián)的數(shù)據(jù),如空間、時(shí)間、層次等屬性的數(shù)據(jù)類型,HDFS系統(tǒng)無(wú)法識(shí)別這些屬性信息,無(wú)法按照屬性關(guān)聯(lián)方式分割數(shù)據(jù),建立數(shù)據(jù)塊間的關(guān)聯(lián),造成數(shù)據(jù)分布的不合理;再次,由于HDFS系統(tǒng)沒(méi)有按照數(shù)據(jù)屬性分割存儲(chǔ)數(shù)據(jù),當(dāng)按照某種屬性特征進(jìn)行數(shù)據(jù)讀取時(shí),無(wú)法提供合理的負(fù)載均衡,部分節(jié)點(diǎn)的I/O壓力過(guò)大,造成整體性能的下降;最后,HDFS數(shù)據(jù)訪問(wèn)是基于文件的,無(wú)法基于屬性特征進(jìn)行數(shù)據(jù)訪問(wèn),無(wú)法提供基于屬性的數(shù)據(jù)查詢、合并、裁剪等操作,無(wú)法按照屬性關(guān)聯(lián)讀取和重組多個(gè)文件的數(shù)據(jù)。
[0006]現(xiàn)有技術(shù)二提供一種GoogleBigTable (BigTable: A Distributed Storage Systemfor Structured Data)的分布式數(shù)據(jù)庫(kù)系統(tǒng),可以實(shí)現(xiàn)海量數(shù)據(jù)記錄在成百上千節(jié)點(diǎn)的存儲(chǔ)。BigTable基于一種Key/Value白勺存儲(chǔ)結(jié)構(gòu),引入了列族(即Column Family)的概念,即一條記錄由Key和一個(gè)或多個(gè)列族組成,存儲(chǔ)時(shí)按列族存儲(chǔ)。每個(gè)BigTable的數(shù)據(jù)表由多個(gè)Tablet組成,Tablet是一個(gè)數(shù)據(jù)記錄集合的單元,一般限定數(shù)據(jù)容量為100-200MB,由Tablet Server負(fù)責(zé)管理Tablet位置信息。BigTable建立了一個(gè)B+樹的Tablet索引結(jié)構(gòu),采用Google Chubby服務(wù)進(jìn)行高可用和訪問(wèn)鎖控制,用戶訪問(wèn)通過(guò)Chubby連接到RootTablet,然后定位到具體的Tablet,最后通過(guò)Key得到相應(yīng)的列族。BigTable非常適合巨大數(shù)據(jù)量的非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ),可以提供較好的分布式并行讀寫性能。
[0007]但是本案發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)二至少存在以下不足:首先BigTable的Key/Value結(jié)構(gòu)只具有單一的關(guān)鍵字,而且一般為字符串,無(wú)法用于具有多維屬性結(jié)構(gòu)的關(guān)鍵字描述,例如具有空間位置、時(shí)間屬性和層次屬性的空間數(shù)據(jù);其次BigTable存儲(chǔ)數(shù)據(jù)是按照到達(dá)順序或者隨機(jī)方式進(jìn)行分配的,以此形成不同的Tablet,會(huì)造成空間關(guān)聯(lián)數(shù)據(jù)存儲(chǔ)的不合理,數(shù)據(jù)訪問(wèn)會(huì)頻繁的指向一個(gè)Tablet,從而失去分布式系統(tǒng)的優(yōu)勢(shì);再次,BigTable的數(shù)據(jù)記錄通過(guò)Key是無(wú)法判斷屬性關(guān)聯(lián)的,例如空間相鄰、時(shí)間順序、層次關(guān)系等,因而在數(shù)據(jù)查詢讀取時(shí),無(wú)法按照屬性特征進(jìn)行任務(wù)分配和處理,造成系統(tǒng)性能的不均衡。
【發(fā)明內(nèi)容】
[0008]本發(fā)明正是考慮到當(dāng)前分布式文件系統(tǒng)的缺陷和不足,針對(duì)具有空間屬性的數(shù)據(jù)類型,設(shè)計(jì)和實(shí)現(xiàn)了一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)裝置、方法及系統(tǒng)。整個(gè)數(shù)據(jù)系統(tǒng)將不存在文件概念,系統(tǒng)使用標(biāo)準(zhǔn)空間參數(shù)建立不同的數(shù)據(jù)空間,輸入數(shù)據(jù)按照匹配的數(shù)據(jù)空間進(jìn)行網(wǎng)格化分割,通過(guò)網(wǎng)格散列計(jì)算得到分布序列編碼,以此編碼為依據(jù)將網(wǎng)格化的數(shù)據(jù)塊存儲(chǔ)到分布節(jié)點(diǎn)中。這個(gè)分布式系統(tǒng)將成為一個(gè)真正的面向數(shù)據(jù)的系統(tǒng),而不是簡(jiǎn)單的文件系統(tǒng),系統(tǒng)中的數(shù)據(jù)和數(shù)據(jù)塊完全依據(jù)自身的空間屬性進(jìn)行分割和分布,數(shù)據(jù)讀取可以涉及到數(shù)據(jù)空間的任意區(qū)域,系統(tǒng)自動(dòng)的按照空間范圍拼接和裁剪數(shù)據(jù),形成最終結(jié)果,以數(shù)據(jù)流或者文件的方式提供。
[0009]本發(fā)明實(shí)施例提供了一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法,包括,
[0010]將具有空間特性的數(shù)據(jù)劃分為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間的數(shù)據(jù);
[0011]根據(jù)網(wǎng)格空間位置的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)。
[0012]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法的一個(gè)進(jìn)一步的方面,所述空間特性的數(shù)據(jù)包括一維空間數(shù)據(jù),二維空間數(shù)據(jù),三維空間數(shù)據(jù)或者多維空間數(shù)據(jù)。
[0013]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法的再一個(gè)進(jìn)一步的方面,數(shù)據(jù)空間作為具有相同空間屬性數(shù)據(jù)的容器,由多個(gè)范圍一致的空間網(wǎng)格組成,所述每個(gè)網(wǎng)格均具有時(shí)間軸,按照時(shí)間片的方式存儲(chǔ)不同時(shí)段內(nèi)的數(shù)據(jù),在每個(gè)時(shí)間片內(nèi)還包括至少一個(gè)物理層,數(shù)據(jù)按照物理層分為多個(gè)數(shù)據(jù)塊。
[0014]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法的另一個(gè)進(jìn)一步的方面,根據(jù)網(wǎng)格空間位置的關(guān)聯(lián)關(guān)系將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)中進(jìn)一步包括,將空間位置距離近的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中。
[0015]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法的另一個(gè)進(jìn)一步的方面,所述根據(jù)網(wǎng)格的空間位置將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)之前還包括,將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換,得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的序列編碼。
[0016]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法的另一個(gè)進(jìn)一步的方面,所述將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換方法進(jìn)一步包括希爾伯特曲線、行序曲線或Z序曲線。
[0017]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法的另一個(gè)進(jìn)一步的方面,在得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的序列編碼之后還包括,將所述序列編碼與存儲(chǔ)節(jié)點(diǎn)做映射,根據(jù)所述映射將空間位置距離近的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中。
[0018]本發(fā)明實(shí)施例還提供了一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取方法,包括,
[0019]根據(jù)讀取具有空間特性數(shù)據(jù)的讀取請(qǐng)求,確定覆蓋所述讀取請(qǐng)求的網(wǎng)格;
[0020]根據(jù)所述覆蓋的網(wǎng)格,確定存儲(chǔ)所述網(wǎng)格中數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn);
[0021 ] 從所述確定的存儲(chǔ)節(jié)點(diǎn)并行讀取請(qǐng)求的數(shù)據(jù)。
[0022]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取方法的一個(gè)進(jìn)一步的方面,在從所述確定的存儲(chǔ)節(jié)點(diǎn)獲取所述讀取請(qǐng)求的數(shù)據(jù)之后還包括,根據(jù)所述讀取請(qǐng)求中的空間范圍對(duì)所述覆蓋網(wǎng)格的數(shù)據(jù)進(jìn)行拼接裁剪,獲得精確的讀取請(qǐng)求的數(shù)據(jù)。
[0023]本發(fā)明實(shí)施例還提供了一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)裝置,包括,
[0024]網(wǎng)格劃分單元,用于將具有空間特性的數(shù)據(jù)分割為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間的數(shù)據(jù);
[0025]存儲(chǔ)單元,用于根據(jù)網(wǎng)格的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)。
[0026]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)裝置的一個(gè)進(jìn)一步的方面,還包括散列計(jì)算單元,連接于所述網(wǎng)格劃分單元與所述存儲(chǔ)單元之間,用于將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換,得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的網(wǎng)格編號(hào);還包括映射單元,連接于所述存儲(chǔ)單元與散列計(jì)算單元之間,用于將所述網(wǎng)格與存儲(chǔ)節(jié)點(diǎn)做映射。
[0027]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)裝置的再一個(gè)進(jìn)一步的方面,所述散列計(jì)算單元采用包括希爾伯特曲線、行序曲線或Z序曲線將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換。
[0028]本發(fā)明實(shí)施例還提供了一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取裝置,包括,請(qǐng)求獲取單元,用于根據(jù)讀取具有空間特性數(shù)據(jù)的讀取請(qǐng)求,確定覆蓋所述讀取請(qǐng)求的網(wǎng)格;
[0029]處理單元,用于根據(jù)所述覆蓋的網(wǎng)格,確定存儲(chǔ)所述網(wǎng)格中數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn);
[0030]并行讀取單元,用于從所述確定的存儲(chǔ)節(jié)點(diǎn)并行讀取請(qǐng)求的數(shù)據(jù)。
[0031]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)讀取裝置的一個(gè)進(jìn)一步的方面,還包括拼接和剪裁單元,與所述讀取單元相連接,用于根據(jù)所述讀取請(qǐng)求中的空間范圍對(duì)所述覆蓋網(wǎng)格的數(shù)據(jù)進(jìn)行拼接裁剪,獲得精確的讀取請(qǐng)求的數(shù)據(jù)。
[0032]本發(fā)明實(shí)施例還提供了一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng),包括,
[0033]網(wǎng)格劃分單元,用于將具有空間特性的數(shù)據(jù)分割為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間的數(shù)據(jù);
[0034]存儲(chǔ)單元,用于根據(jù)網(wǎng)格的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)
占.[0035]請(qǐng)求獲取單元,用于根據(jù)讀取具有空間特性數(shù)據(jù)的讀取請(qǐng)求,確定覆蓋所述讀取請(qǐng)求的網(wǎng)格;
[0036]處理單元,用于根據(jù)所述覆蓋的網(wǎng)格,確定存儲(chǔ)所述網(wǎng)格中數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn);
[0037]并行讀取單元,用于從所述確定的存儲(chǔ)節(jié)點(diǎn)并行讀取請(qǐng)求的數(shù)據(jù)。
[0038]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng)的一個(gè)進(jìn)一步的方面,散列計(jì)算單元,用于將分割數(shù)據(jù)空間后形成的多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換,得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的序列編碼;
[0039]映射單元,用于將所述網(wǎng)格與存儲(chǔ)節(jié)點(diǎn)做映射。
[0040]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng)的再一個(gè)進(jìn)一步的方面,所述散列計(jì)算單元、映射單元、請(qǐng)求獲取單元、處理單元位于主節(jié)點(diǎn);
[0041]所述網(wǎng)格劃分單元、存儲(chǔ)單元、并行讀取單元位于客戶端節(jié)點(diǎn)。
[0042]根據(jù)本發(fā)明實(shí)施例所述一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng)的另一個(gè)進(jìn)一步的方面,還包括中間層節(jié)點(diǎn),連接于所述客戶端節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)之間,用于根據(jù)所述讀取請(qǐng)求中的空間范圍對(duì)所述覆蓋網(wǎng)格的數(shù)據(jù)進(jìn)行拼接和裁剪,獲得精確的讀取請(qǐng)求的數(shù)據(jù)。
[0043]通過(guò)上述實(shí)施例中的方法及裝置,對(duì)于巨量的各種類型空間數(shù)據(jù),可以實(shí)現(xiàn)高并行度的數(shù)據(jù)讀寫,保證按照空間屬性分割的數(shù)據(jù)可以均衡的、保持空間關(guān)聯(lián)的、安全的存儲(chǔ)到各個(gè)節(jié)點(diǎn),可以適應(yīng)各種形式的數(shù)據(jù)讀取申請(qǐng),為用戶提供真正的以數(shù)據(jù)為中心的服務(wù),而不是簡(jiǎn)單的文件讀取。同時(shí),系統(tǒng)具有極大的擴(kuò)展能力,而且系統(tǒng)擴(kuò)展與性能是線性相關(guān)的,系統(tǒng)不會(huì)出現(xiàn)大量閑置節(jié)點(diǎn),或者I/o瓶頸節(jié)點(diǎn),實(shí)現(xiàn)了分布式系統(tǒng)設(shè)計(jì)的初衷,即:分散壓力、提高效率。
【專利附圖】
【附圖說(shuō)明】
[0044]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。在附圖中:
[0045]圖1所示為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法的流程圖;
[0046]圖2所示為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取方法的流程圖;
[0047]圖3所示為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)圖;
[0048]圖4所述為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取裝置的結(jié)構(gòu)示意圖;
[0049]圖5所示為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng)的結(jié)構(gòu)圖;
[0050]圖6為實(shí)施例的數(shù)據(jù)空間和網(wǎng)格劃分示意圖;
[0051]圖7所示為本發(fā)明實(shí)施例網(wǎng)格數(shù)據(jù)模型的示意圖;
[0052]圖8所示為本發(fā)明實(shí)施例網(wǎng)格標(biāo)識(shí)和散列序列號(hào)對(duì)應(yīng)示意圖;[0053]圖9所示為本發(fā)明實(shí)施例網(wǎng)格標(biāo)識(shí)與存儲(chǔ)節(jié)點(diǎn)映射關(guān)系的示意圖;
[0054]圖10所示為本發(fā)明實(shí)施例衛(wèi)星遙感數(shù)據(jù)與網(wǎng)格中的位置示意圖;
[0055]圖11所示為本發(fā)明實(shí)施例網(wǎng)格數(shù)據(jù)的屬性表格;
[0056]圖12所不為本發(fā)明實(shí)施例網(wǎng)格存儲(chǔ)于存儲(chǔ)節(jié)點(diǎn)的映射關(guān)系不意圖;
[0057]圖13所示為本發(fā)明實(shí)施例寫入數(shù)據(jù)的示意圖;
[0058]圖14所示為本發(fā)明實(shí)施例多文件寫入數(shù)據(jù)空間的示意圖;
[0059]圖15所示為本發(fā)明實(shí)施例按照矩形區(qū)域讀取數(shù)據(jù)空間子集的示意圖;
[0060]圖16所示為本發(fā)明實(shí)施例讀取多邊形區(qū)域數(shù)據(jù)空間的示意圖;
[0061]圖17所示為本發(fā)明實(shí)施例讀取多邊形區(qū)域數(shù)據(jù)空間流程圖。
【具體實(shí)施方式】
[0062]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例做進(jìn)一步詳細(xì)說(shuō)明。在此,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。
[0063]如圖1所示為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法的流程圖。
[0064]包括步驟101,將具有空間特性的數(shù)據(jù)劃分為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間的數(shù)據(jù)。
[0065]步驟102,根據(jù)網(wǎng)格空間位置的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)。
[0066]作為本發(fā)明的一個(gè)實(shí)施例,所述空間特性的數(shù)據(jù)包括一維空間數(shù)據(jù),二維空間數(shù)據(jù),三維空間數(shù)據(jù)或者多維空間數(shù)據(jù)。空間特性的數(shù)據(jù)是用于在明確的坐標(biāo)系統(tǒng)中,描述空間內(nèi)連續(xù)或離散位置的各種屬性、物理、統(tǒng)計(jì)、自然等方面信息的數(shù)據(jù)集合,主要包括:基于地理的空間實(shí)體數(shù)據(jù)、連續(xù)分布的空間柵格數(shù)據(jù)、離散分布的信息點(diǎn)數(shù)據(jù)、具有行列坐標(biāo)的圖像和科學(xué)矩陣數(shù)據(jù)等。
[0067]作為本發(fā)明的一個(gè)實(shí)施例,數(shù)據(jù)空間作為具有相同空間屬性數(shù)據(jù)的容器,由多個(gè)范圍一致的空間網(wǎng)格組成,所述每個(gè)網(wǎng)格均具有時(shí)間軸,用以存儲(chǔ)不同時(shí)段內(nèi)的數(shù)據(jù),在每個(gè)時(shí)段內(nèi)還包括至少一個(gè)物理層,數(shù)據(jù)按照物理層分為多個(gè)數(shù)據(jù)塊。
[0068]作為本發(fā)明的一個(gè)實(shí)施例,根據(jù)網(wǎng)格的空間位置將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)中進(jìn)一步包括,將空間位置距離近的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中。
[0069]作為本發(fā)明的一個(gè)實(shí)施例,所述根據(jù)網(wǎng)格的空間位置將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)之前還包括,將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換,得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的網(wǎng)格編號(hào),例如空間位置距離越近的網(wǎng)格的編號(hào)越接近。
[0070]作為本發(fā)明的一個(gè)實(shí)施例,所述將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換進(jìn)一步包括希爾伯特曲線、行序曲線或Z序曲線。
[0071]作為本發(fā)明的一個(gè)實(shí)施例,在得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的網(wǎng)格編號(hào)之后還包括,將所述網(wǎng)格編號(hào)與存儲(chǔ)節(jié)點(diǎn)做映射,根據(jù)所述映射將空間位置距離近的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中。
[0072]作為本發(fā)明的一個(gè)實(shí)施例,將空間位置距離近的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中進(jìn)一步包括,將空間位置距離近的網(wǎng)格的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中。[0073]通過(guò)上述實(shí)施例的方法,對(duì)于巨量的各種類型空間數(shù)據(jù),可以實(shí)現(xiàn)高并行度的數(shù)據(jù)寫入,保證按照空間屬性分割的數(shù)據(jù)可以均衡的、保持空間關(guān)聯(lián)的、安全的存儲(chǔ)到各個(gè)節(jié)點(diǎn),同時(shí),系統(tǒng)具有極大的擴(kuò)展能力,而且系統(tǒng)擴(kuò)展與性能是線性相關(guān)的,系統(tǒng)不會(huì)出現(xiàn)大量閑置節(jié)點(diǎn),或者I/O瓶頸節(jié)點(diǎn),實(shí)現(xiàn)了分布式系統(tǒng)設(shè)計(jì)的初衷。
[0074]如圖2所示為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取方法的流程圖。
[0075]包括步驟201,根據(jù)讀取具有空間特性數(shù)據(jù)的讀取請(qǐng)求,確定覆蓋所述讀取請(qǐng)求的網(wǎng)格。
[0076]步驟202,根據(jù)所述覆蓋的網(wǎng)格,確定存儲(chǔ)所述網(wǎng)格中數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn)。
[0077]步驟203,從所述確定的存儲(chǔ)節(jié)點(diǎn)并行讀取請(qǐng)求的數(shù)據(jù)。
[0078]作為本發(fā)明的一個(gè)實(shí)施例,在從所述確定的存儲(chǔ)節(jié)點(diǎn)獲取所述讀取請(qǐng)求的數(shù)據(jù)之后還包括,根據(jù)所述讀取請(qǐng)求中的空間范圍對(duì)所述覆蓋網(wǎng)格的數(shù)據(jù)進(jìn)行拼接和裁剪,獲得精確的讀取請(qǐng)求的數(shù)據(jù)。
[0079]通過(guò)上述讀取方法的實(shí)施例,在讀取數(shù)據(jù)時(shí)是按照空間相鄰關(guān)系選擇網(wǎng)格數(shù)據(jù)的,可以驅(qū)動(dòng)大部分存儲(chǔ)節(jié)點(diǎn)并行工作,保證系統(tǒng)的I/O性能最優(yōu)化。
[0080]如圖3所示為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)圖。
[0081]包括網(wǎng)格劃分單元301,用于將具有空間特性的數(shù)據(jù)分割為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間的數(shù)據(jù)。
[0082]存儲(chǔ)單元302,用于根據(jù)網(wǎng)格的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)。
[0083]作為本發(fā)明的一個(gè)實(shí)施例,所述空間特性的數(shù)據(jù)包括一維空間數(shù)據(jù),二維空間數(shù)據(jù),三維空間數(shù)據(jù)或者多維空間數(shù)據(jù)。
[0084]作為本發(fā)明的一個(gè)實(shí)施例,數(shù)據(jù)空間作為具有相同空間屬性數(shù)據(jù)的容器,由多個(gè)范圍一致的空間網(wǎng)格組成,所述每個(gè)網(wǎng)格均具有時(shí)間軸,以時(shí)間片的方式存儲(chǔ)不同時(shí)段內(nèi)的數(shù)據(jù),在每個(gè)時(shí)間片內(nèi)還包括至少一個(gè)物理層,數(shù)據(jù)按照物理層分為多個(gè)數(shù)據(jù)塊。
[0085]作為本發(fā)明的一個(gè)實(shí)施例,所述存儲(chǔ)單元302進(jìn)一步用于將空間位置距離近的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中。
[0086]作為本發(fā)明的一個(gè)實(shí)施例,還包括散列計(jì)算單元303,連接于所述網(wǎng)格劃分單元301與所述存儲(chǔ)單元302之間,用于將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換,得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的序列編碼;
[0087]還包括映射單元304,連接于所述存儲(chǔ)單元302與散列計(jì)算單元303之間,用于將所述序列編碼與存儲(chǔ)節(jié)點(diǎn)做映射,所述存儲(chǔ)單元302根據(jù)所述映射將網(wǎng)格數(shù)據(jù)存儲(chǔ)于存儲(chǔ)節(jié)點(diǎn)中。
[0088]作為本發(fā)明的一個(gè)實(shí)施例,所述散列單元303采用包括希爾伯特曲線、行序曲線或Z序曲線將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換。
[0089]作為本發(fā)明的一個(gè)實(shí)施例,所述存儲(chǔ)單元302進(jìn)一步用于將空間位置距離近的網(wǎng)格的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中。
[0090]通過(guò)上述實(shí)施例的裝置,對(duì)于巨量的各種類型空間數(shù)據(jù),可以實(shí)現(xiàn)高并行度的數(shù)據(jù)寫入,保證按照空間屬性分割的數(shù)據(jù)可以均衡的、保持空間關(guān)聯(lián)的、安全的存儲(chǔ)到各個(gè)節(jié)點(diǎn),同時(shí),系統(tǒng)具有極大的擴(kuò)展能力,而且系統(tǒng)擴(kuò)展與性能是線性相關(guān)的,系統(tǒng)不會(huì)出現(xiàn)大量閑置節(jié)點(diǎn),或者I/o瓶頸節(jié)點(diǎn),實(shí)現(xiàn)了分布式系統(tǒng)設(shè)計(jì)的初衷。
[0091]如圖4所述為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取裝置的結(jié)構(gòu)示意圖。
[0092]包括請(qǐng)求獲取單元401,用于根據(jù)讀取具有空間特性數(shù)據(jù)的讀取請(qǐng)求,確定覆蓋所述讀取請(qǐng)求的網(wǎng)格。
[0093]處理單元402,用于根據(jù)所述覆蓋的網(wǎng)格,確定存儲(chǔ)所述網(wǎng)格中數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn)。
[0094]讀取單元403,用于從所述確定的存儲(chǔ)節(jié)點(diǎn)獲取所述讀取請(qǐng)求的數(shù)據(jù)。
[0095]作為本發(fā)明的一個(gè)實(shí)施例,還包括拼接和剪裁單元404,與所述讀取單元403相連接,用于根據(jù)所述讀取請(qǐng)求中的空間范圍對(duì)所述覆蓋網(wǎng)格的數(shù)據(jù)進(jìn)行拼接和裁剪,獲得精確的讀取請(qǐng)求的數(shù)據(jù)。
[0096]通過(guò)上述讀取裝置的實(shí)施例,在讀取數(shù)據(jù)時(shí)是按照空間相鄰關(guān)系選擇網(wǎng)格數(shù)據(jù)的,可以驅(qū)動(dòng)大部分存儲(chǔ)節(jié)點(diǎn)并行工作,保證系統(tǒng)的I/O性能最優(yōu)化。
[0097]如圖5所示為本發(fā)明實(shí)施例一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng)的結(jié)構(gòu)圖。
[0098]包括主節(jié)點(diǎn)501,復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)502,客戶端節(jié)點(diǎn)503。
[0099]所述主節(jié)點(diǎn)501進(jìn)一步包括:
[0100]數(shù)據(jù)空間單元5011,用于建立具有一致屬性的數(shù)據(jù)容器空間的描述,劃分為多個(gè)空間網(wǎng)格,計(jì)算每個(gè)網(wǎng)格的唯一標(biāo)識(shí)。
[0101]散列計(jì)算單元5011,將分割數(shù)據(jù)空間后形成的多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換,得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的序列編碼;所述數(shù)據(jù)空間作為具有相同空間特征描述的數(shù)據(jù)容器,按照空間屬性、坐標(biāo)系統(tǒng)和數(shù)據(jù)特征建立數(shù)據(jù)空間,依據(jù)網(wǎng)格劃分標(biāo)準(zhǔn),將數(shù)據(jù)空間分割為多個(gè)網(wǎng)格,得到每個(gè)網(wǎng)格的唯一標(biāo)識(shí)。
[0102]映射單元5012,將得到的序列編碼與復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)進(jìn)行映射,得到一一對(duì)應(yīng)的網(wǎng)格與存儲(chǔ)節(jié)點(diǎn)的映射關(guān)系。
[0103]還包括請(qǐng)求獲取單元5013,用于根據(jù)所述客戶端節(jié)點(diǎn)503發(fā)出的讀取具有空間特性數(shù)據(jù)的讀取請(qǐng)求,根據(jù)所述讀取請(qǐng)求確定覆蓋所述讀取請(qǐng)求的網(wǎng)格。
[0104]處理單元5014,用于根據(jù)所述覆蓋的網(wǎng)格,確定存儲(chǔ)所述網(wǎng)格中數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn)。
[0105]所述客戶端節(jié)點(diǎn)503進(jìn)一步包括:
[0106]網(wǎng)格劃分單元5031,用于將具有空間特性的數(shù)據(jù)劃分為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間的數(shù)據(jù)。
[0107]存儲(chǔ)單元5032,用于根據(jù)網(wǎng)格的關(guān)聯(lián)關(guān)系(即映射關(guān)系),將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)502。
[0108]讀取單元5033,用于從所述確定的存儲(chǔ)節(jié)點(diǎn)并行讀取請(qǐng)求的數(shù)據(jù)。
[0109]在上述客戶端節(jié)點(diǎn)503中還可以包括拼接和剪裁單元5035,用于根據(jù)所述讀取請(qǐng)求中的空間范圍從獲取的數(shù)據(jù)中進(jìn)行拼接和裁剪,獲得精確的讀取請(qǐng)求的數(shù)據(jù)。
[0110]或者,在所述客戶端節(jié)點(diǎn)503與所述存儲(chǔ)節(jié)點(diǎn)502之間還包括中間層節(jié)點(diǎn)504,用于根據(jù)所述讀取請(qǐng)求中的空間范圍從獲取的數(shù)據(jù)中進(jìn)行裁剪,獲得精確的讀取請(qǐng)求的數(shù)據(jù)發(fā)送給客戶端節(jié)點(diǎn)503。
[0111]上述實(shí)施例中,散列計(jì)算單元、映射單元、請(qǐng)求獲取單元、處理單元可以位于主節(jié)點(diǎn)(后面的實(shí)施例均位于主節(jié)點(diǎn)),也可以位于存儲(chǔ)節(jié)點(diǎn)(即沒(méi)有主節(jié)點(diǎn)),亦或者位于客戶端節(jié)點(diǎn)(即沒(méi)有主節(jié)點(diǎn));或者在某個(gè)實(shí)施例中,如果事先將該數(shù)據(jù)空間分割成多個(gè)網(wǎng)格后,該系統(tǒng)可以不需要散列計(jì)算單元、映射單元再次分割網(wǎng)格,直接將客戶端節(jié)點(diǎn)輸入的數(shù)據(jù)根據(jù)數(shù)據(jù)空間分割網(wǎng)格的標(biāo)準(zhǔn)分割成多個(gè)網(wǎng)格,然后根據(jù)網(wǎng)格的關(guān)聯(lián)關(guān)系(即空間位置)分別存儲(chǔ)于不同的存儲(chǔ)節(jié)點(diǎn)中。
[0112]下面將使用一個(gè)具體的實(shí)施例,詳細(xì)闡明本發(fā)明的實(shí)施方案和技術(shù)優(yōu)點(diǎn)。
[0113]首先,初始化系統(tǒng)參數(shù),建立主節(jié)點(diǎn)數(shù)據(jù)庫(kù),部署存儲(chǔ)節(jié)點(diǎn)管理模塊,安裝客戶端接口庫(kù),完成樣例數(shù)據(jù)輸入準(zhǔn)備。
[0114]圖6為實(shí)施例的數(shù)據(jù)空間和網(wǎng)格劃分示意圖,在本實(shí)施例中以二維數(shù)據(jù)為例,建議一個(gè)二維的數(shù)據(jù)空間,在其他實(shí)施例中還可以為多維數(shù)據(jù)對(duì)應(yīng)建立多維的數(shù)據(jù)空間,在最基本的二維數(shù)據(jù)空間中創(chuàng)建一個(gè)基于地理坐標(biāo)的數(shù)據(jù)空間,范圍包括整個(gè)中國(guó)及周邊區(qū)域,其中:坐標(biāo)范圍為:70° -140° E、15° -55° N ;X方向分辨率為0.02°,Y方向分辨率為0.02° ;地球橢球體模型參考WGS-84標(biāo)準(zhǔn);左上角為坐標(biāo)原點(diǎn),X坐標(biāo)抽為經(jīng)度,正向向左,Y坐標(biāo)軸為緯度,正向向下;數(shù)據(jù)空間物理大小為3500X2000。上述參數(shù)整合為屬性數(shù)據(jù)記錄,數(shù)據(jù)空間標(biāo)識(shí)設(shè)為“ChinaRegion”,存入主節(jié)點(diǎn)數(shù)據(jù)庫(kù)中,數(shù)據(jù)空間創(chuàng)建完成。其中,主節(jié)點(diǎn)數(shù)據(jù)庫(kù)采用矩陣式關(guān)系數(shù)據(jù)庫(kù)集群部署方式,按照系統(tǒng)規(guī)模由2-4個(gè)節(jié)點(diǎn)組成,所有節(jié)點(diǎn)都有一份完整的數(shù)據(jù)拷貝,數(shù)據(jù)一致性達(dá)到嚴(yán)格的事物處理級(jí)別。通過(guò)配置界面,輸入存儲(chǔ)節(jié)點(diǎn)的物理信息,包括地址、容量、接口協(xié)議、主備設(shè)置、活動(dòng)狀態(tài)等,建立存儲(chǔ)節(jié)點(diǎn)配置表。
[0115]下一步開始設(shè)計(jì)網(wǎng)格劃分,網(wǎng)格的大小需要考慮數(shù)據(jù)類型、數(shù)據(jù)量大小、數(shù)據(jù)空間大小等,按照網(wǎng)格切割的數(shù)據(jù)塊大小要適中,優(yōu)選的在128KB-4MB的范圍內(nèi),這樣系統(tǒng)的I/O性能最優(yōu)。本實(shí)施例中,網(wǎng)格按照250X250的正方形區(qū)域進(jìn)行設(shè)計(jì),則數(shù)據(jù)空間“Chinaregion”包括112個(gè)網(wǎng)格,形成一個(gè)14X8的網(wǎng)格矩陣,如圖6所示。對(duì)于每個(gè)網(wǎng)格,記錄其左上角坐標(biāo)、X和Y方向分辨率、X和Y方向?qū)挾鹊葏?shù);同時(shí),通過(guò)網(wǎng)格標(biāo)識(shí)計(jì)算函數(shù),生成網(wǎng)格標(biāo)識(shí),例如網(wǎng)格標(biāo)識(shí)可以為一個(gè)64位的整數(shù),其中:高4位代表數(shù)據(jù)空間類型;接下來(lái)8位保留;然后26位為網(wǎng)格左上角X坐標(biāo)值;最后26位為網(wǎng)格左上角Y坐標(biāo)值,例如:本實(shí)施例的數(shù)據(jù)空間類型是中國(guó)網(wǎng)格,代碼為15,對(duì)于左上角坐標(biāo)為110.0° E和45.0° N的網(wǎng)格,其計(jì)算得到的網(wǎng)格標(biāo)識(shí)為:16142813667133857664。同時(shí),系統(tǒng)也提供一個(gè)網(wǎng)格標(biāo)識(shí)逆計(jì)算函數(shù),通過(guò)網(wǎng)格標(biāo)識(shí)可以直接計(jì)算得到網(wǎng)格左上角X和Y坐標(biāo)值,例如:網(wǎng)格標(biāo)識(shí)為16142914330428357664的網(wǎng)格,經(jīng)逆計(jì)算可以得出網(wǎng)格左上角X和Y坐標(biāo)值為120.0° E和35.0° N。將網(wǎng)格屬性參數(shù)和網(wǎng)格標(biāo)識(shí)組合形成數(shù)據(jù)記錄,存入主節(jié)點(diǎn)數(shù)據(jù)庫(kù)的網(wǎng)格屬性表中。
[0116]上述步驟中的網(wǎng)格還可以包括若干層次的數(shù)據(jù),例如如圖7所示為本發(fā)明實(shí)施例網(wǎng)格數(shù)據(jù)模型的示意圖,在本例中模型包括三個(gè)層次,即:網(wǎng)格、時(shí)間片和物理層。這三個(gè)層次是向下包含的,首先,按照空間范圍、坐標(biāo)體系建立數(shù)據(jù)空間,將數(shù)據(jù)空間劃分為多個(gè)網(wǎng)格,每個(gè)網(wǎng)格將是一個(gè)獨(dú)立的數(shù)據(jù)單元,網(wǎng)格間的聯(lián)系依靠空間拓?fù)潢P(guān)聯(lián)維持;其次,對(duì)于每一個(gè)網(wǎng)格,存在一個(gè)時(shí)間軸,數(shù)據(jù)按照時(shí)間片的形式分布在時(shí)間軸上,時(shí)間片具有“厚度”屬性,不同“厚度”代表不同的時(shí)間范圍,由數(shù)據(jù)輸入時(shí)設(shè)置;再次,空間數(shù)據(jù)一般包括I個(gè)或多個(gè)物理層次,在一個(gè)時(shí)間片內(nèi),將依據(jù)屬性分成多個(gè)物理層,數(shù)據(jù)按照物理層分為多個(gè)數(shù)據(jù)塊,成為系統(tǒng)存儲(chǔ)的最小單元。
[0117]上一步得到的14X8的網(wǎng)格矩陣,在實(shí)際存儲(chǔ)數(shù)據(jù)時(shí),會(huì)形成112個(gè)網(wǎng)格數(shù)據(jù)塊序列,這個(gè)一維序列如何排列,將對(duì)系統(tǒng)的I/O性能有明顯影響,因此本發(fā)明實(shí)施例采用算法模型計(jì)算二維矩陣到一維序列的映射。
[0118]在本步驟中,數(shù)據(jù)空間“ChinaRegion”將使用希爾伯特曲線的算法模型計(jì)算網(wǎng)格矩陣散列,希爾伯特曲線是一種能填充滿一個(gè)平面空間的分形曲線,其價(jià)值在于建立一維空間到二維空間一一對(duì)應(yīng)的關(guān)系。希爾伯特曲線遍歷的平面空間,必需是一個(gè)2n的正方形矩陣,對(duì)于數(shù)據(jù)空間“ChinaRegion”的14X8的網(wǎng)格矩陣,需要擴(kuò)充為24X 24的矩陣空間,在這個(gè)空間完成希爾伯特曲線計(jì)算,然后由左上角開始,裁剪出14X8的矩陣空間,作為散列計(jì)算結(jié)果,圖8的上部為數(shù)據(jù)空間“ChinaRegion”疊加希爾伯特曲線的示意圖。希爾伯特曲線計(jì)算結(jié)果是一個(gè)序列號(hào)碼,代表網(wǎng)格矩陣中某個(gè)網(wǎng)格在希爾伯特曲線中的排位,兩個(gè)在希爾伯特曲線中相連的點(diǎn),其在二維空間中也是相鄰的,這樣使得越是空間緊密相連的數(shù)據(jù),其希爾伯特曲線中的序列編碼也就越接近。圖8中的表I和表2為A和B兩個(gè)區(qū)域的網(wǎng)格標(biāo)識(shí)與希爾伯特曲線序列號(hào)的對(duì)應(yīng)表。
[0119]作為另外的實(shí)施例中,還可以采用其他的散列算法,例如對(duì)于空間范圍較大,網(wǎng)格空間矩陣超過(guò)4X4維度的,依據(jù)希爾伯特曲線(Hilbert)進(jìn)行散列分布計(jì)算,得到空間關(guān)聯(lián)的一維序列;對(duì)于空間范圍較小,網(wǎng)格空間矩陣小于4X4維度的,使用一般的行序曲線進(jìn)行散列分布計(jì)算;對(duì)于網(wǎng)格空間矩陣X和Y方向維度有較大差異的情況,采用Z序曲線計(jì)算散列分布。
[0120]得到希爾伯特序列號(hào)后,使用這個(gè)序列號(hào)與存儲(chǔ)節(jié)點(diǎn)配置表進(jìn)行笛卡爾乘積關(guān)系運(yùn)算,就可以進(jìn)一步得到網(wǎng)格與存儲(chǔ)節(jié)點(diǎn)的映射關(guān)系。圖9為網(wǎng)格標(biāo)識(shí)與存儲(chǔ)節(jié)點(diǎn)映射關(guān)系的示意圖,以圖8中選取的B區(qū)域作為示例,圖9的表I為網(wǎng)格標(biāo)識(shí)與希爾伯特曲線編碼對(duì)應(yīng)表,圖9表2為存儲(chǔ)節(jié)點(diǎn)配置表,圖9表3為計(jì)算得到的網(wǎng)格與存儲(chǔ)節(jié)點(diǎn)映射表。由圖9表3分析可知,通過(guò)希爾伯特曲線的網(wǎng)格散列計(jì)算,可以非常完美的將B區(qū)域的網(wǎng)格序列,均衡的分布到所有的存儲(chǔ)節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)的負(fù)載基本一致,8個(gè)存儲(chǔ)節(jié)點(diǎn)都至少存儲(chǔ)一個(gè)網(wǎng)格數(shù)據(jù),最多存儲(chǔ)2個(gè)網(wǎng)格數(shù)據(jù)??臻g關(guān)聯(lián)關(guān)系維持在所有分布的存儲(chǔ)節(jié)點(diǎn),而不是僅存在于一個(gè)存儲(chǔ)節(jié)點(diǎn)中,在讀取數(shù)據(jù)時(shí)按照空間相鄰關(guān)系選擇網(wǎng)格數(shù)據(jù),本發(fā)明的分布式數(shù)據(jù)系統(tǒng)可以驅(qū)動(dòng)大部分存儲(chǔ)節(jié)點(diǎn)并行工作,保證系統(tǒng)的I/O性能最優(yōu)化。
[0121]上述處理完成后,數(shù)據(jù)空間就可以作為數(shù)據(jù)容器,提供給輸入數(shù)據(jù)使用,所有符合數(shù)據(jù)空間“ChinaRegion”空間屬性描述的數(shù)據(jù)類型都可以存儲(chǔ)數(shù)據(jù),這里采用一個(gè)典型的空間數(shù)據(jù)類型作為實(shí)例。衛(wèi)星遙感數(shù)據(jù)是一種典型的空間數(shù)據(jù)種類,其基本特征就是連續(xù)空間分布的柵格數(shù)據(jù),可以使用空間網(wǎng)格模型來(lái)描述。如圖10上部分所示為衛(wèi)星遙感數(shù)據(jù)的一部分,這里使用一個(gè)衛(wèi)星遙感圖像作為輸入數(shù)據(jù),文件名為“filel.dat”其空間范圍為:100° E —120° E和30° N — 50° N,坐標(biāo)系統(tǒng)、分辨率、橢球體模型與數(shù)據(jù)空間“ChinaRegion”保持一致,圖10的下部分是輸入數(shù)據(jù)在網(wǎng)格中的位置示意。圖11的上部分顯示了輸入數(shù)據(jù)網(wǎng)格劃分的示意,共分為16個(gè)網(wǎng)格區(qū)域,同時(shí)將通過(guò)這個(gè)區(qū)域的希爾伯特曲線疊加在數(shù)據(jù)圖像上。圖11的表I為輸入數(shù)據(jù)的網(wǎng)格空間屬性表,圖11的表2為網(wǎng)格散列編碼表,這些是通過(guò)主節(jié)點(diǎn)數(shù)據(jù)庫(kù),由數(shù)據(jù)空間“ChinaRegion”網(wǎng)格屬性表進(jìn)行空間查詢獲取的。圖12下部分為進(jìn)一步查詢得到的輸入數(shù)據(jù)網(wǎng)格與存儲(chǔ)節(jié)點(diǎn)的映射關(guān)系,圖12的表1為16個(gè)網(wǎng)格與8個(gè)存儲(chǔ)節(jié)點(diǎn)的映射表,圖12的下部分顯示了 16個(gè)網(wǎng)格在存儲(chǔ)節(jié)點(diǎn)的分布情況,每個(gè)節(jié)點(diǎn)都至少對(duì)應(yīng)一個(gè)網(wǎng)格,Node2和Node5對(duì)應(yīng)的網(wǎng)格數(shù)量最多,達(dá)到3個(gè),整個(gè)分布情況比較均衡。
[0122]圖13顯示了數(shù)據(jù)寫入的示意圖,按照網(wǎng)格劃分標(biāo)準(zhǔn),輸入數(shù)據(jù)首先分成16個(gè)網(wǎng)格數(shù)據(jù)體,然后根據(jù)網(wǎng)格和存儲(chǔ)節(jié)點(diǎn)的映射關(guān)系,以得到的存儲(chǔ)節(jié)點(diǎn)地址由客戶端將16個(gè)網(wǎng)格數(shù)據(jù)體并行寫入各個(gè)存儲(chǔ)節(jié)點(diǎn)(N0del、N0de2…NodeS),最后通知主節(jié)點(diǎn)數(shù)據(jù)寫入成功,寫入過(guò)程的主要數(shù)據(jù)流只在客戶端和存儲(chǔ)節(jié)點(diǎn)之間產(chǎn)生,客戶端與主節(jié)點(diǎn)之間僅傳輸控制信息,整個(gè)系統(tǒng)的負(fù)載分配非常均衡,不會(huì)出現(xiàn)I/O瓶頸。
[0123]圖14為多文件寫入數(shù)據(jù)空間的示意圖,filel.dat、file2.dat、file3.dat為3個(gè)具有相同空間屬性的數(shù)據(jù)文件,分別按照數(shù)據(jù)空間“ChinaRegion”的網(wǎng)格劃分寫入數(shù)據(jù),圖14顯示了 3個(gè)文件數(shù)據(jù)輸入完成后,整個(gè)數(shù)據(jù)空間的圖像,三部分?jǐn)?shù)據(jù)拼接為一個(gè)整體,后續(xù)的數(shù)據(jù)訪問(wèn)僅針對(duì)數(shù)據(jù)空間,不需要關(guān)心數(shù)據(jù)屬于哪個(gè)文件。
[0124]本發(fā)明的分布式數(shù)據(jù)系統(tǒng),在數(shù)據(jù)讀取時(shí)更具有明顯的優(yōu)勢(shì)和效率,數(shù)據(jù)讀取可以看作是數(shù)據(jù)寫入的逆過(guò)程,但在優(yōu)秀的散列算法的安排下,數(shù)據(jù)讀取過(guò)程的并行度將得到質(zhì)的提高。這里以上述完成寫入3個(gè)文件的數(shù)據(jù)空間“ChinaRegion”為例,分別按照矩形和多邊形區(qū)域進(jìn)行數(shù)據(jù)讀取,說(shuō)明整個(gè)系統(tǒng)的并行度和負(fù)載情況。
[0125]圖15是一個(gè)按照矩形區(qū)域讀取數(shù)據(jù)空間子集的示意圖,圖15顯示了數(shù)據(jù)空間中選擇最左側(cè)的一個(gè)矩形區(qū)域,范圍為:95° E —105° E和30° N — 45° N,共包括9個(gè)網(wǎng)格,圖15中的B為這個(gè)矩形區(qū)域數(shù)據(jù)的最終圖像。由客戶端通過(guò)主節(jié)點(diǎn)數(shù)據(jù)庫(kù)得到覆蓋輸入?yún)^(qū)域的所有網(wǎng)格序列號(hào)(Grid_ID),依據(jù)網(wǎng)格標(biāo)識(shí)(Hilbert_Num)進(jìn)一步得到對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)編號(hào)(Node_ID),通過(guò)存儲(chǔ)節(jié)點(diǎn)的編號(hào)最終得到存儲(chǔ)節(jié)點(diǎn)的地址(IP_Addr),圖15的表I為得到的網(wǎng)格與存儲(chǔ)節(jié)點(diǎn)映射表,確定每個(gè)網(wǎng)格的存儲(chǔ)位置,由客戶端并行從相關(guān)的存儲(chǔ)節(jié)點(diǎn)讀取網(wǎng)格數(shù)據(jù)體。數(shù)據(jù)流只在存儲(chǔ)節(jié)點(diǎn)和客戶端之間產(chǎn)生,系統(tǒng)負(fù)載非常均衡,圖15的下部分顯示了各個(gè)存儲(chǔ)節(jié)點(diǎn)的負(fù)載情況,這次數(shù)據(jù)讀取涉及的9個(gè)網(wǎng)格,非常均勻的分布在8個(gè)節(jié)點(diǎn)上,只有node6需要提供2個(gè)網(wǎng)格,其它節(jié)點(diǎn)都只需要提供一個(gè)網(wǎng)格,存儲(chǔ)節(jié)點(diǎn)沒(méi)有出現(xiàn)大量空閑,也沒(méi)有出現(xiàn)高I/O壓力節(jié)點(diǎn),系統(tǒng)處于一個(gè)良好的負(fù)載狀態(tài)下,這是本發(fā)明的分布式數(shù)據(jù)系統(tǒng)相比其它分布式系統(tǒng)最具優(yōu)勢(shì)的體現(xiàn)。
[0126]在數(shù)據(jù)讀取時(shí),本發(fā)明實(shí)施例還可以提供一個(gè)空間處理中間層內(nèi)置于客戶端或者連接于客戶端與存儲(chǔ)節(jié)點(diǎn)之間,用于將分散的網(wǎng)格數(shù)據(jù)拼接為一個(gè)整體,按照輸入請(qǐng)求的空間區(qū)域進(jìn)行精確的裁剪,形成符合用戶需求的數(shù)據(jù)體返回到客戶端。圖16顯示了一個(gè)多邊形區(qū)域的數(shù)據(jù)讀取示意,圖16中的A部分顯示了輸入多邊形區(qū)域在數(shù)據(jù)空間中的位置,依據(jù)空間檢索算法,獲取覆蓋這個(gè)多邊形區(qū)域的最大網(wǎng)格序列,圖16中的B部分顯示了多邊形區(qū)域最小外接網(wǎng)格矩形的示意,共涉及9個(gè)網(wǎng)格。按照網(wǎng)格數(shù)據(jù)并行讀取方式,從各個(gè)存儲(chǔ)節(jié)點(diǎn)讀取網(wǎng)格數(shù)據(jù),輸入到空間處理中間層,按照空間算法完成網(wǎng)格數(shù)據(jù)的拼接、裁剪和重組等處理,圖16中的C部分為最終的數(shù)據(jù)讀取結(jié)果顯示,最后以數(shù)據(jù)流方式返回到客戶端。
[0127] 圖17顯示了本發(fā)明實(shí)施例的數(shù)據(jù)讀取的流程示意,首先用戶通過(guò)客戶端提出數(shù)據(jù)讀取請(qǐng)求(如圖中網(wǎng)格中的點(diǎn)狀區(qū)域)發(fā)送到主節(jié)點(diǎn),所述數(shù)據(jù)讀取請(qǐng)求中包括將空間、時(shí)間和物理等屬性參數(shù);然后主節(jié)點(diǎn)采用空間檢索算法,查詢覆蓋輸入空間范圍的最小網(wǎng)格序列,如圖中的16個(gè)網(wǎng)格,將網(wǎng)格標(biāo)識(shí)返回客戶端;再次,客戶端提交網(wǎng)格標(biāo)識(shí)序列到主節(jié)點(diǎn),并查詢主節(jié)點(diǎn)數(shù)據(jù)庫(kù)得到網(wǎng)格對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn),客戶端通過(guò)并行方式向各個(gè)節(jié)點(diǎn)提出網(wǎng)格數(shù)據(jù)請(qǐng)求;各個(gè)存儲(chǔ)節(jié)點(diǎn)將網(wǎng)格數(shù)據(jù)傳輸?shù)娇臻g處理中間層,在該空間處理中間層中進(jìn)行數(shù)據(jù)的拼接和裁剪,形成如客戶端請(qǐng)求的那部分點(diǎn)狀區(qū)域的數(shù)據(jù);最后,空間處理中間層以數(shù)據(jù)流方式,將最終結(jié)果返回客戶端,完成數(shù)據(jù)讀取。整個(gè)數(shù)據(jù)讀取過(guò)程,數(shù)據(jù)流和控制流完全分離,數(shù)據(jù)流的I/O壓力分散到各個(gè)存儲(chǔ)節(jié)點(diǎn),主節(jié)點(diǎn)不承擔(dān)任何數(shù)據(jù)流的I/O,只負(fù)責(zé)控制信息和原數(shù)據(jù)的查詢,系統(tǒng)的負(fù)載非常合理,適合大規(guī)模的數(shù)據(jù)應(yīng)用需求。
[0128]通過(guò)上述的實(shí)施例,對(duì)于巨量的各種類型空間數(shù)據(jù),可以實(shí)現(xiàn)高并行度的數(shù)據(jù)讀寫,保證按照空間屬性分割的數(shù)據(jù)可以均衡的、保持空間關(guān)聯(lián)的、安全的存儲(chǔ)到各個(gè)節(jié)點(diǎn),可以適應(yīng)各種形式的數(shù)據(jù)讀取申請(qǐng),為用戶提供真正的以數(shù)據(jù)為中心的服務(wù),而不是簡(jiǎn)單的文件讀取。同時(shí),系統(tǒng)具有極大的擴(kuò)展能力,而且系統(tǒng)擴(kuò)展與性能是線性相關(guān)的,系統(tǒng)不會(huì)出現(xiàn)大量閑置節(jié)點(diǎn),或者I/o瓶頸節(jié)點(diǎn),實(shí)現(xiàn)了分布式系統(tǒng)設(shè)計(jì)的初衷,S卩:分散壓力、提高效率。
[0129]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0130]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0131]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0132]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0133]以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于包括, 將具有空間特性的數(shù)據(jù)劃分為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間的數(shù)據(jù); 根據(jù)網(wǎng)格空間位置的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述空間特性的數(shù)據(jù)包括一維空間數(shù)據(jù),二維空間數(shù)據(jù),三維空間數(shù)據(jù)或者多維空間數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,數(shù)據(jù)空間作為具有相同空間屬性數(shù)據(jù)的容器,由多個(gè)范圍一致的空間網(wǎng)格組成,所述每個(gè)網(wǎng)格均具有時(shí)間軸,以時(shí)間片的形式存儲(chǔ)不同時(shí)段內(nèi)的數(shù)據(jù),在每個(gè)時(shí)間片內(nèi)還包括至少一個(gè)物理層,數(shù)據(jù)按照物理層分為多個(gè)數(shù)據(jù)塊。
4.根據(jù)權(quán)利要求1所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,根據(jù)網(wǎng)格空間位置的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)中,進(jìn)一步包括,將空間位置距離近的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中。
5.根據(jù)權(quán)利要求1所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述根據(jù)網(wǎng)格的空間位置的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)之前還包括,將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換,得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的序列編碼。
6.根據(jù)權(quán)利要求5所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換方法進(jìn)一步包括希爾伯特曲線、行序曲線或Z序曲線。
7.根據(jù)權(quán)利要求5所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)方法,其特征在于,在得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的序列編碼之后還包括,將所述序列編碼與存儲(chǔ)節(jié)點(diǎn)做映射,根據(jù)所述映射將空間位置距離近的數(shù)據(jù)存儲(chǔ)于分散的存儲(chǔ)節(jié)點(diǎn)中。
8.一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取方法,其特征在于包括, 根據(jù)讀取具有空間特性數(shù)據(jù)的讀取請(qǐng)求,確定覆蓋所述讀取請(qǐng)求的網(wǎng)格; 根據(jù)所述覆蓋的網(wǎng)格,確定存儲(chǔ)所述網(wǎng)格中數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn); 從所述確定的存儲(chǔ)節(jié)點(diǎn)并行讀取請(qǐng)求的數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取方法,其特征在于,在從所述確定的存儲(chǔ)節(jié)點(diǎn)獲取所述讀取請(qǐng)求的數(shù)據(jù)之后還包括,根據(jù)所述讀取請(qǐng)求中的空間范圍對(duì)所述覆蓋網(wǎng)格的數(shù)據(jù)進(jìn)行拼接和裁剪,獲得精確的讀取請(qǐng)求的數(shù)據(jù)。
10.一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)裝置,其特征在于包括, 網(wǎng)格劃分單元,用于將具有空間特性的數(shù)據(jù)分割為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間的數(shù)據(jù); 存儲(chǔ)單元,用于根據(jù)網(wǎng)格的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求10所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)存儲(chǔ)裝置,其特征在于,還包括散列計(jì)算單元,連接于所述網(wǎng)格劃分單元與所述存儲(chǔ)單元之間,用于將所述多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換,得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的序列編碼; 還包括映射單元,連接于所述存儲(chǔ)單元與散列計(jì)算單元之間,用于將所述網(wǎng)格與存儲(chǔ)節(jié)點(diǎn)做映射。
12.一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)并行讀取裝置,其特征在于包括,請(qǐng)求獲取單元,用于根據(jù)讀取具有空間特性數(shù)據(jù)的讀取請(qǐng)求,確定覆蓋所述讀取請(qǐng)求的網(wǎng)格; 處理單元,用于根據(jù)所述覆蓋的網(wǎng)格,確定存儲(chǔ)所述網(wǎng)格中數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn); 并行讀取單元,用于從所述確定的存儲(chǔ)節(jié)點(diǎn)并行讀取請(qǐng)求的數(shù)據(jù)。
13.一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng),其特征在于包括: 網(wǎng)格劃分單元,用于將具有空間特性的數(shù)據(jù)分割為多個(gè)網(wǎng)格,所述網(wǎng)格具有該網(wǎng)格所在空間的數(shù)據(jù); 存儲(chǔ)單元,用于根據(jù)網(wǎng)格的關(guān)聯(lián)關(guān)系,將所述網(wǎng)格中的數(shù)據(jù)存儲(chǔ)于復(fù)數(shù)個(gè)存儲(chǔ)節(jié)點(diǎn);請(qǐng)求獲取單元,用于根據(jù)讀取具有空間特性數(shù)據(jù)的讀取請(qǐng)求,確定覆蓋所述讀取請(qǐng)求的網(wǎng)格; 處理單元,用于根據(jù)所述覆蓋的網(wǎng)格,確定存儲(chǔ)所述網(wǎng)格中數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn); 并行讀取單元,用于從所述確定的存儲(chǔ)節(jié)點(diǎn)并行讀取請(qǐng)求的數(shù)據(jù)。
14.根據(jù)權(quán)利要求13所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng),其特征在于還包括, 散列計(jì)算單元,用 于將分割數(shù)據(jù)空間后形成的多個(gè)網(wǎng)格進(jìn)行從維度空間到一維序列的轉(zhuǎn)換,得到能夠體現(xiàn)網(wǎng)格之間空間關(guān)系的序列編碼; 映射單元,用于將所述網(wǎng)格與存儲(chǔ)節(jié)點(diǎn)做映射。
15.根據(jù)權(quán)利要求14所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng),其特征在于, 所述散列計(jì)算單元、映射單元、請(qǐng)求獲取單元、處理單元位于主節(jié)點(diǎn); 所述網(wǎng)格劃分單元、存儲(chǔ)單元、并行讀取單元位于客戶端節(jié)點(diǎn)。
16.根據(jù)權(quán)利要求15所述的一種基于空間關(guān)聯(lián)的分布式數(shù)據(jù)系統(tǒng),其特征在于,還包括中間層節(jié)點(diǎn),連接于所述客戶端節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)之間,用于根據(jù)所述讀取請(qǐng)求中的空間范圍對(duì)所述覆蓋網(wǎng)格的數(shù)據(jù)進(jìn)行拼接和裁剪,獲得精確的讀取請(qǐng)求的數(shù)據(jù)。
【文檔編號(hào)】G06F3/06GK103995861SQ201410208628
【公開日】2014年8月20日 申請(qǐng)日期:2014年5月16日 優(yōu)先權(quán)日:2014年5月16日
【發(fā)明者】羅敬寧 申請(qǐng)人:羅敬寧