專利名稱:一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子信息技術(shù)領(lǐng)域,尤其涉及一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng)。
背景技術(shù):
爆炸化的數(shù)據(jù)增長導(dǎo)致了數(shù)據(jù)存儲困難、檢索復(fù)雜和可靠性降低等多重問題。云計算和云存儲技術(shù)的出現(xiàn),為海量數(shù)據(jù)的處理與存儲提供了有效的解決途徑。在通常的云計算解決方案中,通過Hadoop (—種分布式系統(tǒng)基礎(chǔ)架構(gòu))的HDFS (— 種分布式文件系統(tǒng))可以方便的實現(xiàn)海量數(shù)據(jù)存儲,同時有效防止單點故障,避免不必要的損失。但是,在HDFS上進行數(shù)據(jù)檢索時,常用的方法是開啟全局搜索MapReduce(大規(guī)模數(shù)據(jù)并行運算),這需要完整過濾一遍HDFS上存儲的所有數(shù)據(jù)。在云計算中,尤其是在海量數(shù)據(jù)情況下,這樣做會對系統(tǒng)資源造成巨大的浪費,耗費大量的時間,這顯然不是一個適合投入現(xiàn)實生產(chǎn)環(huán)境的方式。
發(fā)明內(nèi)容
發(fā)明目的本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),通過索引查詢的方式,提高在云計算中海量數(shù)據(jù)檢索速度,降低資源浪費,節(jié)省時間,同時保障云計算系統(tǒng)內(nèi)數(shù)據(jù)的安全。對此本發(fā)明提供了一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),本系統(tǒng)在數(shù)據(jù)存儲時對數(shù)據(jù)的各個關(guān)鍵字建立索引,通過檢索對應(yīng)關(guān)鍵字索引,快速定位到要讀取和查找的源數(shù)據(jù)文件,進行數(shù)據(jù)過濾。在本發(fā)明中,每個字段的索引被分布式存儲在不同的數(shù)據(jù)節(jié)點上,查詢索引的過程是一個同步的查詢過程,每一臺數(shù)據(jù)節(jié)點的機器都去查找各自索引的內(nèi)容,檢索出相關(guān)源文件記錄后再過濾匯總,形成完整的結(jié)果。本發(fā)明提供了一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),本系統(tǒng)采用完全分布式索引,分布式入庫到各個不同的數(shù)據(jù)節(jié)點上,每個數(shù)據(jù)節(jié)點分別對該節(jié)點上的數(shù)據(jù)獨立的建立索引。每個集群節(jié)點單獨建立索引,在云中存在多個索引的備份,根據(jù)文件的冗余備份方式,不同的文件可能被分別指向了不同的節(jié)點索引。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),在數(shù)據(jù)建立及存儲時,對規(guī)范化的數(shù)據(jù)設(shè)定1個或多個關(guān)鍵字字段,將不同的關(guān)鍵字字段分別建立索引,每張不同的索引生成一張獨立的B+樹結(jié)構(gòu),多個B+樹結(jié)構(gòu)垛疊在一起,與數(shù)據(jù)存儲形成一個完整的數(shù)據(jù)立方結(jié)構(gòu)。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),數(shù)據(jù)在建立及存儲同時建立由插入B+樹構(gòu)成的數(shù)據(jù)立方索引。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),由插入B+樹構(gòu)成的數(shù)據(jù)立方索引是分布式方法建立的,多節(jié)點多機器同步并行處理。
本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),數(shù)據(jù)設(shè)定的關(guān)鍵字字段可以為1個或多個,針對每一個關(guān)鍵字字段分別建立索引,每個索引的增加也同時增加數(shù)據(jù)立方的厚度。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),索引以B+樹的結(jié)構(gòu)生成,每一條新的記錄只需要插入到B+樹中。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),B+樹的插入僅在葉結(jié)點上進行。每插入一個索引項后都要判斷結(jié)點中的子樹棵數(shù)是否超出范圍。當插入后結(jié)點中的子樹棵數(shù)大于某一值時,該數(shù)值可根據(jù)需要設(shè)定為任意數(shù)值,需要將葉結(jié)點分裂為兩個結(jié)點。它們的雙親結(jié)點中應(yīng)同時包含這兩個結(jié)點的最大關(guān)鍵碼和結(jié)點地址。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),在非葉結(jié)點插入時,與葉結(jié)點的插入類似,非葉結(jié)點中的子樹棵數(shù)的上限為一個范圍,此范圍可根據(jù)需要設(shè)定為任意數(shù)值,超出這個范圍也要進行結(jié)點分裂。在做根結(jié)點分裂時,創(chuàng)建新的雙親結(jié)點, 作為樹的新根。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),當有新的記錄到來時,將新的數(shù)據(jù)記錄對應(yīng)的一條索引記錄插入到所有的字段索引中,采取一定的寫入策略。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),所述的寫入策略如下當新的記錄積累到若干條(可根據(jù)需要任意設(shè)定)或經(jīng)過一定時間(可根據(jù)需要任意設(shè)定)時,對于存儲在MemCache (分布式緩存服務(wù)器)中的字段索引,可以將這些數(shù)據(jù)記錄對應(yīng)的索引記錄一次性批量寫入;當新的記錄積累到若干條(可根據(jù)需要人已設(shè)定)或經(jīng)過一定時間(可根據(jù)需要任意設(shè)定)時,可以將這些數(shù)據(jù)記錄對應(yīng)的索引記錄一次性批量寫入HDFS (固態(tài)磁盤)上的索引文件。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),對B+樹的查找類似于二分查找,對于m階,葉子節(jié)點中記錄個數(shù)為η的B+樹來說,其查找的時間復(fù)雜度為 0(log m+(n+l)/2)。因此對于值匹配和范圍查找來說,有很快的速度。此外,由于對值按照大小順序進行了指針鏈接,因此m階B+樹還可以進行對值進行順序查找。本發(fā)明提供的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),對重要字段建立索弓I,存儲在HDFS(固態(tài)磁盤)上。將最近常用的字段索引加載到MemCache(高性能的分布式的內(nèi)存對象緩存系統(tǒng))中,同時刪除最不常用的字段索引以節(jié)省空間。對于每次查詢,系統(tǒng)統(tǒng)計每個字段索引被調(diào)用的次數(shù),對于被調(diào)用次數(shù)最多的那些字段索引就被加載到MemCache 中,而在MemCache中被調(diào)用次數(shù)最少的某些字段將被刪除。
圖1為數(shù)據(jù)立方存儲索引結(jié)構(gòu)圖。圖2為某一關(guān)鍵字字段基于B+樹的索引結(jié)構(gòu)圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的實施方式作出說明
本發(fā)明的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),圖1為數(shù)據(jù)立方存儲索引結(jié)構(gòu),由全局數(shù)據(jù)表1、索引面2組成,全局數(shù)據(jù)表1中,X軸方向表示不同的關(guān)鍵字字段3,y軸方向表示不同的數(shù)據(jù)記錄4,數(shù)據(jù)記錄與關(guān)鍵字字段組合組成了不同數(shù)據(jù)記錄及其關(guān)鍵字字段內(nèi)容的對應(yīng)關(guān)系,不同關(guān)鍵字字段構(gòu)成不同的索引面,每一張索引面分別是某一字段基于B+樹的索引表。本發(fā)明的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),所述的索引表按如下方式建立
如圖2所示B+樹索引表索引建立時對數(shù)據(jù)中重要字段建立索引,以B+樹的結(jié)構(gòu)生成,每一條新的記錄只需要插入到B+樹中。B+樹的插入僅在葉結(jié)點上進行。每插入一個 (關(guān)鍵碼-指針)索引項后都要判斷結(jié)點中的子樹棵數(shù)是否超出范圍。當插入后結(jié)點中的子樹棵數(shù)大于m時,需要將葉結(jié)點分裂為兩個結(jié)點。它們的雙親結(jié)點中應(yīng)同時包含這兩個結(jié)點的最大關(guān)鍵碼和結(jié)點地址。在非葉結(jié)點中關(guān)鍵碼的插入與葉結(jié)點的插入類似,非葉結(jié)點中的子樹棵數(shù)的上限為m,超出這個范圍也要進行結(jié)點分裂。在做根結(jié)點分裂時,因為沒有雙親結(jié)點,就必須創(chuàng)建新的雙親結(jié)點,作為樹的新根。這樣樹的高度就增加一層了。當有新的記錄到來時,我們要將新的數(shù)據(jù)記錄對應(yīng)的一條索引記錄插入到所有的字段索引中,這時要采取一定的寫入策略當新的記錄積累到nl條或經(jīng)過一定時間tl時, 對于存儲在MemCache中的字段索引,可以將這些數(shù)據(jù)記錄對應(yīng)的索引記錄一次性批量寫入;當新的記錄積累到n2條或經(jīng)過一定時間t2時,可以將這些數(shù)據(jù)記錄對應(yīng)的索引記錄一次性批量寫入HDFS (固態(tài)磁盤)上的索引文件。對B+樹的查找類似于二分查找,對于m階,葉子節(jié)點中記錄個數(shù)為η的B+樹來說, 其查找的時間復(fù)雜度為0(log m+(n+l)/2)。因此對于值匹配和范圍查找來說,有很快的速度。此外,由于對值按照大小順序進行了指針鏈接,因此m階B+樹還可以進行對值進行順序查找。另外,本發(fā)明的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng)將最近常用的字段索引加載到MemCache (高性能的分布式的內(nèi)存對象緩存系統(tǒng))中,同時刪除最不常用的字段索引以節(jié)省空間。對于每次查詢,系統(tǒng)統(tǒng)計每個字段索引被調(diào)用的次數(shù),對于被調(diào)用次數(shù)最多的那些字段索引就被加載到MemCache中,而在MemCache中被調(diào)用次數(shù)最少的某些字段將被刪除。本發(fā)明提供了一種帶有數(shù)據(jù)立方存儲索引的云計算系構(gòu)建的思路及方法,具體實現(xiàn)該技術(shù)方案的方法和途徑很多,以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。本實施例中未明確的各組成內(nèi)容和功能均可用現(xiàn)有技術(shù)加以實現(xiàn)。
權(quán)利要求
1.一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),其特征在于,由一個或多個管理節(jié)點,一個或多個計算及存儲節(jié)點(數(shù)據(jù)節(jié)點)組成,系統(tǒng)在數(shù)據(jù)建立與查詢時,分布式建立與應(yīng)用數(shù)據(jù)立方索引結(jié)構(gòu)(1)。
2.根據(jù)權(quán)利要求1所述的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),其特征在于數(shù)據(jù)索引結(jié)構(gòu)(1)采用數(shù)據(jù)立方結(jié)構(gòu)。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于在數(shù)據(jù)建立及存儲時, 對規(guī)范化的數(shù)據(jù)設(shè)定1個或多個關(guān)鍵字字段(3),將不同的關(guān)鍵字字段分別建立索引,每張不同的索引(2)生成一張獨立的B+樹結(jié)構(gòu),多個B+樹結(jié)構(gòu)垛疊在一起,與全局數(shù)據(jù)表形成一個完整的數(shù)據(jù)立方結(jié)構(gòu)。
4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于數(shù)據(jù)在建立及存儲同時建立由插入B+樹構(gòu)成的數(shù)據(jù)立方索引。
5.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于由插入B+樹構(gòu)成的數(shù)據(jù)立方索引是分布式方法建立的,多節(jié)點多機器同步并行處理。
6.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于數(shù)據(jù)設(shè)定的關(guān)鍵字字段(3)可以為1個或多個,針對每一個關(guān)鍵字字段分別建立索引(2),每個索引(2)的增加也同時增加數(shù)據(jù)立方的厚度。
7.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于索引以B+樹的結(jié)構(gòu)生成,每一條新的記錄只需要插入到B+樹中。
8.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于B+樹的插入僅在葉結(jié)點上進行,每插入一個索引項后都要判斷結(jié)點中的子樹棵數(shù)是否超出范圍,當插入后結(jié)點中的子樹棵數(shù)大于某一值時,該數(shù)值可根據(jù)需要設(shè)定為任意數(shù)值,將葉結(jié)點分裂為兩個結(jié)點,它們的雙親結(jié)點中同時包含這兩個結(jié)點的最大關(guān)鍵碼和結(jié)點地址。
9.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于在非葉結(jié)點插入時,與葉結(jié)點的插入類似,非葉結(jié)點中的子樹棵數(shù)的上限為一個范圍,此范圍可根據(jù)需要設(shè)定為任意數(shù)值,超出這個范圍也要進行結(jié)點分裂,在做根結(jié)點分裂時,創(chuàng)建新的雙親結(jié)點,作為樹的新根。
10.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于所述的葉節(jié)點特征是數(shù)據(jù)關(guān)鍵詞內(nèi)容包含于雙親節(jié)點范圍內(nèi)。
11.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于當有新的記錄到來時,將新的數(shù)據(jù)記錄對應(yīng)的一條索引記錄插入到所有的字段索引中,采取一定的寫入策略。
12.根據(jù)權(quán)利要求11所述的新記錄寫入策略,其特征在于當新的記錄積累到若干條 (可根據(jù)需要任意設(shè)定)或經(jīng)過一定時間(可根據(jù)需要任意設(shè)定)時,對于存儲在MemCache(分布式緩存服務(wù)器)中的字段索引,可以將這些數(shù)據(jù)記錄對應(yīng)的索引記錄一次性批量寫入;當新的記錄積累到若干條(可根據(jù)需要人已設(shè)定)或經(jīng)過一定時間(可根據(jù)需要任意設(shè)定)時, 可以將這些數(shù)據(jù)記錄對應(yīng)的索引記錄一次性批量寫入HDFS (固態(tài)磁盤)上的索引文件。
13.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于對B+樹的查找類似于二分查找,B+樹還可以進行對值進行順序查找。
14.根據(jù)權(quán)利要求2所述的數(shù)據(jù)立方存儲索引結(jié)構(gòu),其特征在于對重要字段建立索弓丨,存儲在HDFS(固態(tài)磁盤)上,將最近常用的字段索引加載到MemCache(高性能的分布式的內(nèi)存對象緩存系統(tǒng))中,同時刪除最不常用的字段索引以節(jié)省空間,對于每次查詢,系統(tǒng)統(tǒng)計每個字段索引被調(diào)用的次數(shù),對于被調(diào)用次數(shù)最多的那些字段索引就被加載到MemCache 中,而在MemCache中被調(diào)用次數(shù)最少的某些字段將被刪除。
15.根據(jù)權(quán)利要求1所述的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),其特征在于系統(tǒng)在數(shù)據(jù)存儲時對數(shù)據(jù)的各個關(guān)鍵字分布式建立索引,通過檢索對應(yīng)關(guān)鍵字索引,快速定位到要讀取和查找的源數(shù)據(jù)文件,進行數(shù)據(jù)過濾。
16.根據(jù)權(quán)利要求1所述的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),其特征在于每個字段的索引被分布式存儲在不同的數(shù)據(jù)節(jié)點上,查詢的索引的過程是一個同步的查詢過程,每一臺數(shù)據(jù)節(jié)點的機器都去查找各自索引的內(nèi)容,檢索出相關(guān)源文件記錄后再過濾匯總,形成完整的結(jié)果。
17.根據(jù)權(quán)利要求1所述的一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),其特征在于本系統(tǒng)采用完全分布式索引,分布式入庫到各個不同的數(shù)據(jù)節(jié)點上,每個數(shù)據(jù)節(jié)點分別對該節(jié)點上的數(shù)據(jù)獨立的建立索引,每個集群節(jié)點單獨建立索引,在云中存在多個索引的備份,根據(jù)文件的冗余備份方式,不同的文件可能被分別指向了不同的節(jié)點索引。
全文摘要
本發(fā)明公開了一種帶有數(shù)據(jù)立方存儲索引結(jié)構(gòu)的云計算系統(tǒng),本系統(tǒng)由一個或多個管理節(jié)點,一個或多個計算及存儲節(jié)點(數(shù)據(jù)節(jié)點)組成,系統(tǒng)在數(shù)據(jù)建立與查詢時,分布式建立與應(yīng)用數(shù)據(jù)立方索引結(jié)構(gòu),在數(shù)據(jù)建立及存儲時,對規(guī)范化的數(shù)據(jù)設(shè)定1個或多個關(guān)鍵字字段,將不同的關(guān)鍵字字段分別建立索引,每張不同的索引生成一張獨立的B+樹結(jié)構(gòu),多個B+樹結(jié)構(gòu)垛疊在一起,與全局數(shù)據(jù)表形成一個完整的數(shù)據(jù)立方結(jié)構(gòu)。利用數(shù)據(jù)立方存儲索引結(jié)構(gòu),可方便快捷的在海量數(shù)據(jù)云計算系統(tǒng)中準確檢索定位數(shù)據(jù)。
文檔編號G06F17/30GK102508913SQ201110364429
公開日2012年6月20日 申請日期2011年11月17日 優(yōu)先權(quán)日2011年11月17日
發(fā)明者張真 申請人:張真