一種數(shù)據(jù)庫管理裝置和方法
【專利摘要】本發(fā)明實施例公開了一種數(shù)據(jù)庫管理裝置和方法。本實施例提供的裝置包括:標(biāo)識碼生成模塊,用于生成待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼;獲取模塊,用于在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取待存儲數(shù)據(jù)對應(yīng)的散列值;編號生成模塊,用于根據(jù)標(biāo)識碼生成模塊生成的標(biāo)識碼和獲取模塊獲取的散列值,生成用于處理待存儲數(shù)據(jù)的編號信息,其中,編號信息為均勻散列的編碼字符。本發(fā)明實施例解決了現(xiàn)有技術(shù)中的數(shù)據(jù)庫在使用過程中,由于生成的與待處理數(shù)據(jù)對應(yīng)的編號可能是連續(xù)的或者散列不夠均衡,使得數(shù)據(jù)庫中各數(shù)據(jù)塊上的數(shù)據(jù)的均衡性較差,而導(dǎo)致數(shù)據(jù)庫中資源利用率較低,以及系統(tǒng)性能較差的問題。
【專利說明】
一種數(shù)據(jù)庫管理裝置和方法
技術(shù)領(lǐng)域
[0001]本申請涉及但不限于計算機和數(shù)據(jù)庫技術(shù)領(lǐng)域,尤指一種數(shù)據(jù)庫管理裝置和方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)和計算機技術(shù)的發(fā)展,以及海量數(shù)據(jù)應(yīng)用的普及,為了滿足用戶對海量數(shù)據(jù)的存儲和應(yīng)用,面向海量數(shù)據(jù)存儲的技術(shù)應(yīng)用也隨之越來越廣泛,例如,HBase存儲技術(shù)。
[0003]海量數(shù)據(jù)存儲的技術(shù)應(yīng)用的合理使用,可以提高資源利用率和系統(tǒng)性能,然而,如果使用不當(dāng),則會對資源的利用和系統(tǒng)性能的提高造成不利的影響。舉例來說,由于HBase的工作原理是根據(jù)行主鍵(RowKey)來決定由哪塊數(shù)據(jù)塊(Reg1n)來處理數(shù)據(jù),該RowKey通常為與指定數(shù)據(jù)對應(yīng)的編號(Identificat1n,簡稱為:ID)。如圖1所示,為現(xiàn)有技術(shù)中的一種HBase的工作原理示意圖,在生成某塊Reg1n時就決定了該Reg1n用于處理哪個數(shù)據(jù)范圍內(nèi)的RowKey對應(yīng)的數(shù)據(jù),例如Reg1nl (O?A)用于處理數(shù)據(jù)范圍在[00000,9zzzzz]之間的RowKey對應(yīng)的數(shù)據(jù),具體地,每份數(shù)據(jù)在存入HBase之前,需要生成一個與該數(shù)據(jù)對應(yīng)的RowKey,該RowKey映射到的Reg1n即為處理該數(shù)據(jù)的Reg1n。在實際應(yīng)用中,存在這樣一種情況:如果生成的RowKey是連續(xù)的或者散列不夠均衡,就會導(dǎo)致HBase中各個Reg1n上的數(shù)據(jù)不夠均衡;以最極端的情況為例進行說明,即生成的RowKey是連續(xù)的,此時某個特定范圍內(nèi)的所有數(shù)據(jù)都存儲到同一個Reg1n上,例如在[00000,9zzzzz]范圍內(nèi)的RowKey對應(yīng)的數(shù)據(jù)都存儲到Reg1nl (O?A)中,而Reg1n2?Reg1n4中可能并沒有存儲數(shù)據(jù),這樣會造成加載Reg1nl(0?A)的服務(wù)器的負載過大,而系統(tǒng)中的其他服務(wù)器又過于空閑,產(chǎn)生資源利用不合理的現(xiàn)象。
[0004]綜上所述,現(xiàn)有技術(shù)中的數(shù)據(jù)庫在使用過程中,由于生成的與待處理數(shù)據(jù)對應(yīng)的編號可能是連續(xù)的或者散列不夠均衡,使得數(shù)據(jù)庫中各數(shù)據(jù)塊上的數(shù)據(jù)的均衡性較差,而導(dǎo)致數(shù)據(jù)庫中資源利用率較低,以及系統(tǒng)性能較差的問題。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問題,本發(fā)明實施例提供了一種數(shù)據(jù)庫管理方法和裝置,以解決現(xiàn)有技術(shù)中的數(shù)據(jù)庫在使用過程中,由于生成的與待處理數(shù)據(jù)對應(yīng)的編號可能是連續(xù)的或者散列不夠均衡,使得數(shù)據(jù)庫中各數(shù)據(jù)塊上的數(shù)據(jù)的均衡性較差,而導(dǎo)致數(shù)據(jù)庫中資源利用率較低,以及系統(tǒng)性能較差的問題。
[0006]本發(fā)明實施例提供一種數(shù)據(jù)庫管理裝置,包括:
[0007]標(biāo)識碼生成模塊,用于生成待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼;
[0008]獲取模塊,用于在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取所述待存儲數(shù)據(jù)對應(yīng)的散列值;
[0009]編號生成模塊,用于根據(jù)所述標(biāo)識碼生成模塊生成的所述標(biāo)識碼和所述獲取模塊獲取的所述散列值,生成用于處理所述待存儲數(shù)據(jù)的編號信息,其中,所述編號信息為均勻散列的編碼字符。
[0010]可選地,如上所述的數(shù)據(jù)庫管理裝置中,所述獲取模塊包括:
[0011]轉(zhuǎn)換單元,用于將預(yù)置散列范圍轉(zhuǎn)換為第二進制下的數(shù)據(jù)范圍,其中,所述預(yù)置散列范圍為第一進制下的數(shù)據(jù)范圍,所述第二進制的進位數(shù)小于所述第一進制的進位數(shù);
[0012]選取單元,用于在所述轉(zhuǎn)換單元得到的所述第二進制下的數(shù)據(jù)范圍內(nèi)選取隨機值;
[0013]所述轉(zhuǎn)換單元,還用于將所述選取單元選取的所述隨機值轉(zhuǎn)換為所述第一進制下的數(shù)據(jù)符號;
[0014]獲取單元,用于根據(jù)所述轉(zhuǎn)換單元得到的所述第一進制下的數(shù)據(jù)符號獲取所述散列值。
[0015]可選地,如上所述的數(shù)據(jù)庫管理裝置中,所述獲取模塊還包括:確定單元,用于在所述轉(zhuǎn)換單元將所述預(yù)置散列范圍轉(zhuǎn)換為所述第二進制下的數(shù)據(jù)范圍之前,確定所述預(yù)置散列范圍和所述散列值的預(yù)置長度;
[0016]所述獲取單元用于根據(jù)所述轉(zhuǎn)換單元得到的所述第一進制下的數(shù)據(jù)符號獲取所述散列值,包括:
[0017]當(dāng)所述數(shù)據(jù)符號的長度等于所述預(yù)置長度時,將所述數(shù)據(jù)符號確定為所述散列值;
[0018]當(dāng)所述數(shù)據(jù)符號的長度小于所述預(yù)置長度時,在所述數(shù)據(jù)符號的高位側(cè)補充起始散列值的最高位字符,將補充后的數(shù)據(jù)符號確定為所述散列值,其中,所補充字符的長度與所述數(shù)據(jù)符號的長度之和等于所述預(yù)置長度。
[0019]可選地,如上所述的數(shù)據(jù)庫管理裝置中,所述第一進制為62進制;和/或,所述第二進制為1進制。
[0020]可選地,如上所述的數(shù)據(jù)庫管理裝置中,所述數(shù)據(jù)庫管理裝置還包括:
[0021]存儲模塊,用于在所述編號生成模塊生成用于處理所述待存儲數(shù)據(jù)的編號信息之后,將所述待存儲數(shù)據(jù)存入與所述編號信息對應(yīng)的數(shù)據(jù)塊中;和/或,
[0022]處理模塊,用于在接收到處理指定數(shù)據(jù)的指令時,根據(jù)所述指定數(shù)據(jù)的編號信息指示所述編號信息對應(yīng)的數(shù)據(jù)塊對所述指定數(shù)據(jù)進行處理。
[0023]本發(fā)明實施例還提供一種數(shù)據(jù)庫管理方法,包括:
[0024]生成待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼;
[0025]在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取所述待存儲數(shù)據(jù)對應(yīng)的散列值;
[0026]根據(jù)所述標(biāo)識碼和所述散列值,生成用于處理所述待存儲數(shù)據(jù)的編號信息,其中,所述編號信息為均勻散列的編碼字符。
[0027]可選地,如上所述的數(shù)據(jù)庫管理方法中,所述獲取所述待存儲數(shù)據(jù)對應(yīng)的散列值,包括:
[0028]將預(yù)置散列范圍轉(zhuǎn)換為第二進制下的數(shù)據(jù)范圍,其中,所述預(yù)置散列范圍為第一進制下的數(shù)據(jù)范圍,所述第二進制的進位數(shù)小于所述第一進制的進位數(shù);
[0029]在所述第二進制下的數(shù)據(jù)范圍內(nèi)選取隨機值;
[0030]將所述隨機值轉(zhuǎn)換為所述第一進制下的數(shù)據(jù)符號;
[0031 ]根據(jù)所述第一進制下的數(shù)據(jù)符號獲取所述散列值。
[0032]可選地,如上所述的數(shù)據(jù)庫管理方法中,所述方法還包括:所述將預(yù)置散列范圍轉(zhuǎn)換為第二進制下的數(shù)據(jù)范圍之前,確定所述預(yù)置散列范圍和所述散列值的預(yù)置長度;
[0033]所述根據(jù)所述第一進制下的數(shù)據(jù)符號獲取所述散列值,包括:
[0034]當(dāng)所述數(shù)據(jù)符號的長度等于所述預(yù)置長度時,將所述數(shù)據(jù)符號確定為所述散列值;
[0035]當(dāng)所述數(shù)據(jù)符號的長度小于所述預(yù)置長度時,在所述數(shù)據(jù)符號的高位側(cè)補充起始散列值的最高位字符,將補充后的數(shù)據(jù)符號確定為所述散列值,其中,所補充字符的長度與所述數(shù)據(jù)符號的長度之和等于所述預(yù)置長度。
[0036]可選地,如上所述的數(shù)據(jù)庫管理方法中,所述第一進制為62進制;和/或,所述第二進制為1進制。
[0037]可選地,如上所述的數(shù)據(jù)庫管理方法中,所述方法還包括:
[0038]在生成用于處理所述待存儲數(shù)據(jù)的編號信息之后,將所述待存儲數(shù)據(jù)存入與所述編號信息對應(yīng)的數(shù)據(jù)塊中;和/或,
[0039]在接收到處理指定數(shù)據(jù)的指令時,根據(jù)所述指定數(shù)據(jù)的編號信息指示所述編號信息對應(yīng)的數(shù)據(jù)塊對所述指定數(shù)據(jù)進行處理。
[0040]本發(fā)明實施例提供的信號數(shù)據(jù)庫管理裝置和方法,通過標(biāo)識碼生成模塊生成待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼,獲取模塊在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取該待存儲數(shù)據(jù)對應(yīng)的散列值,隨后由編號生成模塊根據(jù)標(biāo)識碼生成模塊生成的標(biāo)識碼和獲取模塊獲取的散列值,生成用于處理該待存儲數(shù)據(jù)的編號信息,其中,該編號信息為均勻散列的編碼字符;本發(fā)明實施例提供的數(shù)據(jù)庫管理裝置,解決了現(xiàn)有技術(shù)中的數(shù)據(jù)庫在使用過程中,由于生成的與待處理數(shù)據(jù)對應(yīng)的編號可能是連續(xù)的或者散列不夠均衡,使得數(shù)據(jù)庫中各數(shù)據(jù)塊上的數(shù)據(jù)的均衡性較差,而導(dǎo)致數(shù)據(jù)庫中資源利用率較低,以及系統(tǒng)性能較差的問題。
【附圖說明】
[0041]附圖用來提供對本發(fā)明技術(shù)方案的進一步理解,并且構(gòu)成說明書的一部分,與本申請的實施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
[0042]圖1為現(xiàn)有技術(shù)中的一種HBase的工作原理示意圖;
[0043]圖2為本發(fā)明實施例提供的一種數(shù)據(jù)庫管理裝置的結(jié)構(gòu)示意圖;
[0044]圖3為本發(fā)明實施例提供的另一種數(shù)據(jù)庫管理裝置的結(jié)構(gòu)示意圖;
[0045]圖4為本發(fā)明實施例提供的又一種數(shù)據(jù)庫管理裝置的結(jié)構(gòu)示意圖;
[0046]圖5為本發(fā)明實施例提供的一種數(shù)據(jù)庫管理方法的流程圖;
[0047]圖6為本發(fā)明實施例提供的另一種數(shù)據(jù)庫管理方法的流程圖;
[0048]圖7為本發(fā)明實施例提供的又一種數(shù)據(jù)庫管理方法的流程圖。
【具體實施方式】
[0049]應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0050]現(xiàn)在將參考附圖描述實現(xiàn)本發(fā)明各個實施例的移動終端。在后續(xù)的描述中,使用用于表示元見得諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。
[0051]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0052]在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0053]現(xiàn)有技術(shù)中已設(shè)計出一些編號信息的生成方式,如【背景技術(shù)】中所述的,該編號信息為針對每份數(shù)據(jù)生成的,即數(shù)據(jù)庫中的數(shù)據(jù)與編號信息通常應(yīng)該是一一對應(yīng)的關(guān)系。以下同樣以HBase中RowKey(即編號信息)的生成方式為例予以說明,首先介紹HBase中的一些基本概念:
[0054]1、HBase:是一個分布式的、面向列的開源數(shù)據(jù)庫;
[0055]2、RowKey:是HBase中表格的行主鍵;
[0056]3、Reg1n:是HBase中表格實際保存數(shù)據(jù)的數(shù)據(jù)塊,所有同一表格下的Reg1n組成了完整的表數(shù)據(jù);
[0057]4、Reg1nServer:加載Reg 1n 的服務(wù)器,一個Reg 1n 只能由一個Reg1nServer 加載;
[0058]5、62進制:HBase中存儲數(shù)據(jù)時常用的進制模式,62進制的順序可以為:0-9a_zA-
Z0
[0059]現(xiàn)有技術(shù)中這對HBase,通常具有以下兩種RowKey的設(shè)計方案:
[0000]方法一:為預(yù)先生成的Reg1nl設(shè)置一個編號,例如為:a,并設(shè)定該Reg1nl將只接收RowKey首位是a的數(shù)據(jù)。在具體應(yīng)用中,當(dāng)有數(shù)據(jù)需要存入HBase時,在已經(jīng)為每份數(shù)據(jù)創(chuàng)建唯一 RowKey的基礎(chǔ)上,RowKey按順序加上各編號的前綴,例如有4個Reg1n,編號分別為
a、b、c、d,那么生成的RowKey依次為:aOO I,b002,c003,d004,a005,……。該方法在開始創(chuàng)建時能夠保證數(shù)據(jù)存儲的絕對均衡,并且該方法的實施也比較簡單,但是,隨著數(shù)據(jù)不斷增長,當(dāng)存入某一 Reg1n中的數(shù)據(jù)大小超過該Reg1n的某個闕值時,HBase會自動將該Reg1n一分為二,此時,將無法保證分割后的Reg1n中數(shù)據(jù)的均衡性。
[0061]方法二:首先生成一個理論上唯一的標(biāo)識號,然后取該標(biāo)識號的散列值,最后對通過散列值和標(biāo)識號組成最終的RowKey。該方法是目前主流的生成RowKey的方式,能夠滿足大部分的應(yīng)用需求;然而,該方法存在的缺點是:散列值與標(biāo)識號的相關(guān)性太強(即散列值是根據(jù)標(biāo)識號生成的),當(dāng)生成的標(biāo)識號出現(xiàn)重復(fù)的情況時,就會造成生成的散列值是一致的,即兩份數(shù)據(jù)對應(yīng)相同的標(biāo)識號和相同的散列值,從而導(dǎo)致為該兩份數(shù)據(jù)最終生成的RowKey也是一致的,這樣,將會造成數(shù)據(jù)的覆蓋和丟失,即在后存入的數(shù)據(jù)會覆蓋在先存入的數(shù)據(jù),極大的影響了整個數(shù)據(jù)庫的系統(tǒng)性能。
[0062]顯然地,根據(jù)上述對現(xiàn)有技術(shù)中兩種編號信息的設(shè)計方案可以看出,針對數(shù)據(jù)庫中編號信息的設(shè)計,現(xiàn)有技術(shù)中還沒有可以同時滿足數(shù)據(jù)均衡性和保證系統(tǒng)性能的設(shè)計方案。因此,目前亟需提供一種合理的數(shù)據(jù)庫編號信息的設(shè)計方案,旨在滿足數(shù)據(jù)均衡性的同時保證系統(tǒng)系能。
[0063]下面通過具體的實施例對本發(fā)明的技術(shù)方案進行詳細說明,本發(fā)明以下各實施例中的終端設(shè)備可以為支持?jǐn)?shù)據(jù)庫應(yīng)用的終端設(shè)備,例如為個人計算機(PersonalComputerJI^IS = PC)、個人數(shù)字助理(Personal Digital Assistant,簡稱為:PDA)或平板電腦等。本發(fā)明提供以下幾個具體的實施例可以相互結(jié)合,對于相同或相似的概念或過程可能在某些實施例不再贅述。
[0064]圖2為本發(fā)明實施例提供的一種數(shù)據(jù)庫管理裝置的結(jié)構(gòu)示意圖。本實施例提供的數(shù)據(jù)庫管理裝置適用于對海量數(shù)據(jù)進行存儲和應(yīng)用的情況中,該數(shù)據(jù)庫管理裝置通常以硬件和軟件相結(jié)合的方法來實現(xiàn),該裝置可以集成在終端設(shè)備的控制器中,供控制器調(diào)用。如圖2所示,本實施例的數(shù)據(jù)庫管理裝置可以包括:標(biāo)識碼生成模塊11、獲取模塊12和編號生成模塊13。
[0065]其中,標(biāo)識碼生成模塊11,用于生成待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼。
[0066]本實施例提供的數(shù)據(jù)庫管理裝置,在有數(shù)據(jù)需要存入數(shù)據(jù)庫中時,生成與該數(shù)據(jù)對應(yīng)的唯一編號,該編號用于在存儲該數(shù)據(jù)時確定該數(shù)據(jù)存入哪個數(shù)據(jù)塊中,以及在后續(xù)對該數(shù)據(jù)進行處理時,確定由哪個數(shù)據(jù)塊執(zhí)行處理。在本實施例中,首先可以生成與待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼,即每份數(shù)據(jù)在存入數(shù)據(jù)庫前,終端設(shè)備的應(yīng)用程序,例如可以為該標(biāo)識碼生成模塊11對應(yīng)的軟件,可以生成與每份數(shù)據(jù)對應(yīng)的標(biāo)識碼,該標(biāo)識碼理論上應(yīng)該是唯一的,例如可以按照遞增方式或時間戳的方式生成該標(biāo)識號。
[0067]獲取模塊12,用于在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取待存儲數(shù)據(jù)對應(yīng)的散列值。
[0068]編號生成模塊13,用于根據(jù)標(biāo)識碼生成模塊11生成的標(biāo)識碼和獲取模塊12獲取的散列值,生成用于處理待存儲數(shù)據(jù)的編號信息,其中,該編號信息為均勻散列的編碼字符。本實施例中的獲取模塊12可以與標(biāo)識碼生成模塊11相連接,編號生成模塊13可以分別與標(biāo)識碼生成模塊11和獲取模塊12相連接。
[0069]在本實施例中,與現(xiàn)有技術(shù)的類似地之處在于:與每份數(shù)據(jù)對應(yīng)的編號信息同樣由標(biāo)識碼+散列值的形式構(gòu)成,即本實施例在標(biāo)識碼生成模塊11生成標(biāo)識碼后,獲取模塊12還可以獲取待存儲數(shù)據(jù)對應(yīng)的散列值。需要特別說明的,與現(xiàn)有技術(shù)不同的是:本發(fā)明各實施例中獲取模塊12獲取散列值的方式并不是根據(jù)標(biāo)識號生成的,即散列值與標(biāo)識號之間沒有特定的相關(guān)性,在本實施例中,可以是在預(yù)先確定的數(shù)值范圍內(nèi)選取上述待存儲數(shù)據(jù)對應(yīng)散列值,這樣,即便是在標(biāo)識碼生成模塊11生成的標(biāo)識號存在重復(fù)的情況下,也可以最大可能性的避免生成相同的散列值,從而使得最終生成的編號信息最大限度的避免重復(fù)。另夕卜,本實施例中生成的編號信息還有一個特征,為均勻散列的編碼字符,也就是說,通過本實施例生成的編號信息,可以將數(shù)據(jù)均勻的存入數(shù)據(jù)庫的各數(shù)據(jù)塊中,達到數(shù)據(jù)庫負載均衡的效果;顯然地,本實施例通過合理的設(shè)計編號信息的設(shè)計方案,在滿足數(shù)據(jù)庫中數(shù)據(jù)均衡性的同時,提高了該數(shù)據(jù)庫的系統(tǒng)性能。
[0070]舉例來說,可以參照圖1所示的工作原理圖,此時以HBase為例說明本施例的具體實現(xiàn)方式,在有數(shù)據(jù)需要存入HBase中時,標(biāo)識碼生成模塊11生成與該待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼,隨后由獲取模塊12獲取散列值,該散列值有一個預(yù)先設(shè)定的范圍,該范圍例如由終端設(shè)備根據(jù)系統(tǒng)性能或待存儲數(shù)據(jù)的業(yè)務(wù)類型確定,通常地,系統(tǒng)性能由當(dāng)前已存入數(shù)據(jù)的存儲量和系統(tǒng)的處理能力決定,例如包括HBase中各Reg1n的剩余存儲量和負載能力,在終端設(shè)備的不同應(yīng)用場景下,系統(tǒng)性能也是不同的,待存儲數(shù)據(jù)的業(yè)務(wù)類型決定了數(shù)據(jù)量的大小,也決定了占用系統(tǒng)空間的多少,因此,終端設(shè)備可以根據(jù)系統(tǒng)性能和待存儲數(shù)據(jù)確定出一個合理的散列值的范圍,從而在該范圍內(nèi)隨機獲取一個散列值,顯然地,本實施例中的散列值并非根據(jù)標(biāo)識碼生成的,與標(biāo)識碼也沒有太強的相關(guān)性,本實施例從散列值的獲取方式中很大程度的避免了由于可能生成相同標(biāo)識碼,而導(dǎo)致最終生成相同的編號信息,從而造成數(shù)據(jù)覆蓋和丟失的情況。
[0071]本實施例提供的數(shù)據(jù)庫管理裝置,通過標(biāo)識碼生成模塊生成待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼,獲取模塊在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取該待存儲數(shù)據(jù)對應(yīng)的散列值,隨后由編號生成模塊根據(jù)標(biāo)識碼生成模塊生成的標(biāo)識碼和獲取模塊獲取的散列值,生成用于處理該待存儲數(shù)據(jù)的編號信息,其中,該編號信息為均勻散列的編碼字符;本實施例提供的數(shù)據(jù)庫管理裝置,解決了現(xiàn)有技術(shù)中的數(shù)據(jù)庫在使用過程中,由于生成的與待處理數(shù)據(jù)對應(yīng)的編號可能是連續(xù)的或者散列不夠均衡,使得數(shù)據(jù)庫中各數(shù)據(jù)塊上的數(shù)據(jù)的均衡性較差,而導(dǎo)致數(shù)據(jù)庫中資源利用率較低,以及系統(tǒng)性能較差的問題。
[0072]進一步地,由于本發(fā)明實施例中獲取模塊12獲取散列值的方式并非根據(jù)標(biāo)識碼生成的,避免了散列值與標(biāo)識碼間強烈的相關(guān)性,也就是說,即便是在標(biāo)識碼生成模塊11生成了相同標(biāo)識碼的情況下,也在很大概率上保證了相同標(biāo)識碼對應(yīng)不通的散列值,以保證最終生成不同的編號信息,從從而避免了數(shù)據(jù)丟失的風(fēng)險,因此,本發(fā)明實施例實現(xiàn)了在滿足數(shù)據(jù)均衡性的同時,保證了數(shù)據(jù)庫的系統(tǒng)性能。
[0073]可選地,圖3為本發(fā)明實施例提供的另一種數(shù)據(jù)庫管理裝置的結(jié)構(gòu)示意圖。在上述圖2所示數(shù)據(jù)庫管理裝置的結(jié)構(gòu)基礎(chǔ)上,本實施例中的獲取模塊12包括:
[0074]轉(zhuǎn)換單元14,用于將預(yù)置散列范圍轉(zhuǎn)換為第二進制下的數(shù)據(jù)范圍,其中,該預(yù)置散列范圍為第一進制下的數(shù)據(jù)范圍,該第二進制的進位數(shù)小于第一進制的進位數(shù)。
[0075]本實施例同樣以HBase為例予以說明,本實施例中預(yù)置散列范圍可以是預(yù)先確定的數(shù)據(jù)范圍,該預(yù)置散列范圍可以是數(shù)據(jù)庫的設(shè)計人員設(shè)置的,例如是管理員預(yù)先確定了該預(yù)置散列范圍,并保存在數(shù)據(jù)庫的系統(tǒng)中。需要說明的是,本實施例中的預(yù)置散列范圍具體為在第一進制下確定的數(shù)據(jù)范圍,該第一進制例如為62進制,由于62進制對數(shù)據(jù)的壓縮量較強,并且該62進制中包括了O?9共10個數(shù)字符號,以及a?z和A?Z共52個區(qū)分大小寫的英文字母,即該62進制包括的字符更全面,更加適用于對存儲數(shù)據(jù)進行編碼。例如,本實施例中的預(yù)置散列范圍在[00000,ΖΖΖΖΖ]之間。
[0076]選取單元15,用于在轉(zhuǎn)換單元14得到的第二進制下的數(shù)據(jù)范圍內(nèi)選取隨機值。
[0077]在本實施例中,第二進制例如可以為10進制,此時可以先將上述62進制下的預(yù)置散列范圍轉(zhuǎn)換為10進制下的范圍,轉(zhuǎn)換后的結(jié)果為[0,916132831],由于10進制為用戶常用的計算方式,因此可以在10進制下選取隨機值,便于選擇,該隨機值用于后續(xù)獲取散列值。
[0078]需要說明的是,通常存儲數(shù)據(jù)的壓縮量要求比較大,而選擇隨機值則選擇便于操作和用戶熟悉的進制模式,因此,通常要求第二進制的進位數(shù)小于第一進制的進位數(shù)。
[0079]轉(zhuǎn)換單元14,還用于將選取單元15選取的隨機值轉(zhuǎn)換為第一進制下的數(shù)據(jù)符號。
[0080]獲取單元16,用于根據(jù)轉(zhuǎn)換單元14得到的第一進制下的數(shù)據(jù)符號獲取散列值。
[0081]由于本實施例中,在10進制的數(shù)據(jù)范圍內(nèi)選取了隨機值,而散列值應(yīng)為存儲數(shù)據(jù)的進制模式,因此還需要將已選取的隨機值轉(zhuǎn)換為62進制下的數(shù)據(jù)符號,此時,就可以根據(jù)轉(zhuǎn)換后的數(shù)據(jù)符號獲取散列值。
[0082]可選地,本實施例提供的獲取模塊12還可以包括:確定單元17,用于在轉(zhuǎn)換單元14將預(yù)置散列范圍轉(zhuǎn)換為第二進制下的數(shù)據(jù)范圍之前,確定該預(yù)置散列范圍和散列值的預(yù)置長度。本實施例的獲取模塊12中的轉(zhuǎn)換單元14和確定單元17都可以與標(biāo)識碼生成模塊11相連接,轉(zhuǎn)換單元14可以分別與確定單元17、選取單元15和獲取單元16相連接,獲取模塊12中的獲取單元16可以與編號生成模塊13相連接。
[0083]本實施例中的確定單元17,不僅可以預(yù)先確定上述預(yù)置散列范圍,還可以確定散列值的預(yù)置長度,其依據(jù)可以與上述實施例相同,同樣可以根據(jù)數(shù)據(jù)庫的系統(tǒng)性能和待存儲數(shù)據(jù)的業(yè)務(wù)類型確定。舉例來說,基于待存儲數(shù)據(jù)的業(yè)務(wù)類型,可能不希望出現(xiàn)數(shù)字,則確定的該預(yù)置散列范圍可以為全是字母表示的范圍;再例如,如果散列值的長度太長,會占用系統(tǒng)空間,通常根據(jù)業(yè)務(wù)需求和數(shù)據(jù)量的大小,設(shè)置合理的長度。例如本實施例中確定出的預(yù)置長度為5,預(yù)置散列范圍在[00000,ZZZZZ]之間。
[0084]在實際應(yīng)用中,轉(zhuǎn)換單元14將隨機值轉(zhuǎn)換為62進制下的數(shù)據(jù)符號后,該數(shù)據(jù)符號的長度可能為5,也可能小于5,因此,本實施例中的獲取單元16用于根據(jù)轉(zhuǎn)換單元14得到的第一進制下的數(shù)據(jù)符號獲取散列值,包括:當(dāng)數(shù)據(jù)符號的長度等于預(yù)置長度時,將數(shù)據(jù)符號確定為散列值;當(dāng)數(shù)據(jù)符號的長度小于預(yù)置長度時,在數(shù)據(jù)符號的高位側(cè)補充起始散列值的最高位字符,將補充后的數(shù)據(jù)符號確定為散列值,其中,所補充字符的長度與數(shù)據(jù)符號的長度之和等于預(yù)置長度。
[0085]需要說明的是,本實施例中的起始散列值即為預(yù)置散列范圍的最小值,即為00000,那么起始散列值的最高位字符為O。舉例來說,若選取單元15選取的隨機值為2016,那么轉(zhuǎn)換單元14將2016轉(zhuǎn)換為62進制后為ww,此時,由于轉(zhuǎn)化后的字符長度不滿足預(yù)置長度為5的要求,則在ww的高位側(cè)補充O,由于補充的字符長度與ww的字符長度之和為5可知,補充后的最終的散列值為OOOww;再舉例來說,若選取單元15選取的隨機值為716132831,那么轉(zhuǎn)換單元14將716132831轉(zhuǎn)換為62進制后為MsORx,該數(shù)據(jù)符號的長度與預(yù)置長度相同,貝IJMsORx為散列值。
[0086]還需要說明的是,本發(fā)明各實施例中不限制第一進制為62進制,也不限制第二進制為10進制,通常需要滿足第一進制的進位數(shù)高于第二進制的進位數(shù)即可,以保證數(shù)據(jù)庫具有較高的數(shù)據(jù)壓縮量。
[0087]進一步地,圖4為本發(fā)明實施例提供的又一種數(shù)據(jù)庫管理裝置的結(jié)構(gòu)示意圖。在上述圖2所示數(shù)據(jù)庫管理裝置的結(jié)構(gòu)基礎(chǔ)上,本實施例提供的數(shù)據(jù)庫管理裝置還可以包括:
[0088]存儲模塊18,用于在編號生成模塊13生成用于處理待存儲數(shù)據(jù)的編號信息之后,將待存儲數(shù)據(jù)存入與該編號信息對應(yīng)的數(shù)據(jù)塊中。本實施例中的存儲模塊18可以與編號生成模塊13相連接,
[0089]本實施例的存儲模塊18以HBase中的存儲方式為例予以說明,在生成與待存儲數(shù)據(jù)對應(yīng)的編號信息后,可以參考圖1所示,若該編號信息為M0001,則可知該編號信息在[Μ0000,Ζζζζζ]之間,這個數(shù)據(jù)范圍內(nèi)的編號信息對應(yīng)的數(shù)據(jù)塊為Reg1n3,則將該數(shù)據(jù)存入Reg1n3中。
[0090]可選地,本實施例還可以包括處理模塊19,用于在接收到處理指定數(shù)據(jù)的指令時,根據(jù)該指定數(shù)據(jù)的編號信息指示該編號信息對應(yīng)的數(shù)據(jù)塊對該指定數(shù)據(jù)進行處理。本實施例中的處理模塊19都可以與編號生成模塊13相連接,并且處理模塊19還可以與存儲模塊18相連接。
[0091]與上述存儲方式類似地,當(dāng)數(shù)據(jù)存入HBase的Reg1n中后,如果需要對數(shù)據(jù)進行進一步地處理和操作,即在接收到處理指定數(shù)據(jù)的指令時,可以根據(jù)該指定數(shù)據(jù)在存入Reg1n前生成的編號信息,指示對應(yīng)的Reg1n對該指定數(shù)據(jù)進行處理,具體可以由加載該Reg1n的服務(wù)器,即Reg1nServer執(zhí)行處理。
[0092]需要說明的是,上述存儲模塊18存儲數(shù)據(jù)的方式,以及處理模塊19對數(shù)據(jù)進行處理的方式,為HBase中的具體實現(xiàn)方式,在其它類型的數(shù)據(jù)庫中,存儲數(shù)據(jù)和處理數(shù)據(jù)的方式可以是不同的。即圖4僅是對存儲模塊18和處理模塊19執(zhí)行方式的一個示意性的說明,并不以此限制本發(fā)明實施例的數(shù)據(jù)存儲方式和數(shù)據(jù)處理方式。
[0093]在具體實現(xiàn)中,本發(fā)明圖2到圖4所示各實施例中的存儲模塊18可以通過終端設(shè)備的存儲器來實現(xiàn),該存儲器例如可以是終端設(shè)備的硬盤;標(biāo)識碼生成模塊U、獲取模塊12、編號生成模塊13和處理模塊19可以通過終端設(shè)備的處理器來實現(xiàn),該處理器例如可以是一個中央處理器(Central Processing Un i t,簡稱為:CPU),或者是特定集成電路(Applicat1n Specific Integrated Circuit,簡稱為:ASIC),或者是完成實施本發(fā)明實施例的一個或多個集成電路。
[0094]圖5為本發(fā)明實施例提供的一種數(shù)據(jù)庫管理方法的流程圖。本實施例提供的數(shù)據(jù)庫管理方法適用于對海量數(shù)據(jù)進行存儲和應(yīng)用的情況中,該數(shù)據(jù)庫管理方法可以由本發(fā)明實施例提供的數(shù)據(jù)庫管理裝置執(zhí)行,該裝置通常以硬件和軟件相結(jié)合的方法來實現(xiàn),該裝置可以集成在終端設(shè)備的控制器中,供控制器調(diào)用使用。如圖5所示,本實施例的數(shù)據(jù)庫管理方法可以包括:
[0095]S110,生成待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼。
[0096]本實施例提供的數(shù)據(jù)庫管理方法,在有數(shù)據(jù)需要存入數(shù)據(jù)庫中時,生成與該數(shù)據(jù)對應(yīng)的唯一編號,該編號用于在存儲該數(shù)據(jù)時確定該數(shù)據(jù)存入哪個數(shù)據(jù)塊中,以及在后續(xù)對該數(shù)據(jù)進行處理時,確定由哪個數(shù)據(jù)塊執(zhí)行處理。在本實施例中,首先可以生成與待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼,即每份數(shù)據(jù)在存入數(shù)據(jù)庫前,終端設(shè)備的應(yīng)用程序,可以生成與每份數(shù)據(jù)對應(yīng)的標(biāo)識碼,該標(biāo)識碼理論上應(yīng)該是唯一的,例如可以按照遞增方式或時間戳的方式生成該標(biāo)識號。
[0097]S120,在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取待存儲數(shù)據(jù)對應(yīng)的散列值,使得相同標(biāo)識碼對應(yīng)不同的散列值。
[0098]S130,根據(jù)標(biāo)識碼和散列值,生成用于處理該待存儲數(shù)據(jù)的編號信息,其中,該編號信息為均勻散列的編碼字符。
[0099]在本實施例中,與現(xiàn)有技術(shù)的類似地之處在于:與每份數(shù)據(jù)對應(yīng)的編號信息同樣由標(biāo)識碼+散列值的形式構(gòu)成,即本實施例在生成標(biāo)識碼后,還可以獲取待存儲數(shù)據(jù)對應(yīng)的散列值。需要特別說明的,與現(xiàn)有技術(shù)不同的是:本發(fā)明各實施例中獲取散列值的方式并不是根據(jù)標(biāo)識號生成的,即散列值與標(biāo)識號之間沒有特定的相關(guān)性,在本實施例中,可以是在預(yù)先確定的數(shù)值范圍內(nèi)選取上述待存儲數(shù)據(jù)對應(yīng)散列值,這樣,即便是在生成的標(biāo)識號存在重復(fù)的情況下,也可以最大可能性的避免生成相同的散列值,從而使得最終生成的編號信息最大限度的避免重復(fù)。另外,本實施例中生成的編號信息還有一個特征,為均勻散列的編碼字符,也就是說,通過本實施例生成的編號信息,可以將數(shù)據(jù)均勻的存入數(shù)據(jù)庫的各數(shù)據(jù)塊中,達到數(shù)據(jù)庫負載均衡的效果;顯然地,本實施例通過合理的設(shè)計編號信息的設(shè)計方案,在滿足數(shù)據(jù)庫中數(shù)據(jù)均衡性的同時,提高了該數(shù)據(jù)庫的系統(tǒng)性能。
[0100]需要說明的是,本實施例中預(yù)先確定的數(shù)據(jù)范圍同樣可以是終端設(shè)備根據(jù)系統(tǒng)性能或待存儲數(shù)據(jù)的業(yè)務(wù)類型確定,具體實例在上述實施例中已經(jīng)說明,故在此不再贅述。
[0101]本實施例提供的數(shù)據(jù)庫管理方法,通過對待存儲數(shù)據(jù)生成對應(yīng)的標(biāo)識碼,在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取該待存儲數(shù)據(jù)對應(yīng)的散列值,并且使得相同標(biāo)識碼對應(yīng)不同的散列值,隨后根據(jù)已生成的標(biāo)識碼和散列值,生成用于處理該待存儲數(shù)據(jù)的編號信息,其中,該編號信息為均勻散列的編碼字符;本實施例提供的數(shù)據(jù)庫管理方法,解決了現(xiàn)有技術(shù)中的數(shù)據(jù)庫在使用過程中,由于生成的與待處理數(shù)據(jù)對應(yīng)的編號可能是連續(xù)的或者散列不夠均衡,使得數(shù)據(jù)庫中各數(shù)據(jù)塊上的數(shù)據(jù)的均衡性較差,而導(dǎo)致數(shù)據(jù)庫中資源利用率較低,以及系統(tǒng)性能較差的問題。
[0102]進一步地,由于本發(fā)明實施例中獲取散列值的方式并非根據(jù)標(biāo)識碼生成的,避免了散列值與標(biāo)識碼間強烈的相關(guān)性,也就是說,即便是在生成了相同標(biāo)識碼的情況下,也在很大概率上保證了相同標(biāo)識碼對應(yīng)不通的散列值,以保證最終生成不同的編號信息,從從而避免了數(shù)據(jù)丟失的風(fēng)險,因此,本發(fā)明實施例實現(xiàn)了在滿足數(shù)據(jù)均衡性的同時,保證了數(shù)據(jù)庫的系統(tǒng)性能。
[0103]可選地,圖6為本發(fā)明實施例提供的另一種數(shù)據(jù)庫管理方法的流程圖。在上述圖5所示流程的基礎(chǔ)上,本實施例中的SI 20可以為包括:
[0104]S122,將預(yù)置散列范圍轉(zhuǎn)換為第二進制下的數(shù)據(jù)范圍,其中,該預(yù)置散列范圍為第一進制下的數(shù)據(jù)范圍,該第二進制的進位數(shù)小于該第一進制的進位數(shù)。
[0105]本實施例同樣以HBase為例予以說明,本實施例中預(yù)置散列范圍可以是預(yù)先確定的數(shù)據(jù)范圍,該預(yù)置散列范圍可以是數(shù)據(jù)庫的設(shè)計人員設(shè)置的,例如是管理員預(yù)先確定了該預(yù)置散列范圍,并保存在數(shù)據(jù)庫的系統(tǒng)中。需要說明的是,本實施例中的預(yù)置散列范圍具體為在第一進制下確定的數(shù)據(jù)范圍,該第一進制同樣可以為62進制,由于62進制對數(shù)據(jù)的壓縮量較強,并且該62進制包括的字符更全面,更加適用于對存儲數(shù)據(jù)進行編碼。例如,本實施例中的預(yù)置散列范圍同樣在[00000,ZZZZZ ]之間。
[0106]S123,在第二進制下的數(shù)據(jù)范圍內(nèi)選取隨機值。
[0107]在本實施例中,第二進制同樣可以為10進制,此時可以先將上述62進制下的預(yù)置散列范圍轉(zhuǎn)換為10進制下的范圍,轉(zhuǎn)換后的結(jié)果為[0,916132831],由于10進制為用戶常用的計算方式,因此可以在10進制下選取隨機值,便于選擇,該隨機值用于后續(xù)獲取散列值。
[0108]需要說明的是,通常存儲數(shù)據(jù)的壓縮量要求比較大,而選擇隨機值則選擇便于操作和用戶熟悉的進制模式,因此,通常要求第二進制的進位數(shù)小于第一進制的進位數(shù)。
[0109]S124,將隨機值轉(zhuǎn)換為第一進制下的數(shù)據(jù)符號。
[0110]S125,根據(jù)第一進制下的數(shù)據(jù)符號獲取散列值。
[0111]由于本實施例中,在10進制的數(shù)據(jù)范圍內(nèi)選取了隨機值,而散列值應(yīng)為存儲數(shù)據(jù)的進制模式,因此還需要將已選取的隨機值轉(zhuǎn)換為62進制下的數(shù)據(jù)符號,此時,就可以根據(jù)轉(zhuǎn)換后的數(shù)據(jù)符號獲取散列值。
[0112]可選地,本實施例在S122之前,還可以包括:
[0113]S121,確定預(yù)置散列范圍和散列值的預(yù)置長度。
[0114]本實施例提供的方法,不僅可以預(yù)先確定上述預(yù)置散列范圍,還可以確定散列值的預(yù)置長度,其依據(jù)可以與上述實施例相同,同樣可以根據(jù)數(shù)據(jù)庫的系統(tǒng)性能和待存儲數(shù)據(jù)的業(yè)務(wù)類型確定。舉例來說,基于待存儲數(shù)據(jù)的業(yè)務(wù)類型,可能不希望出現(xiàn)數(shù)字,則確定的預(yù)置散列范圍可以為全是字母表示的范圍;再例如,如果散列值的長度太長,會占用系統(tǒng)空間,通常根據(jù)業(yè)務(wù)需求和數(shù)據(jù)量的大小,設(shè)置合理的長度。例如本實施例中確定出的預(yù)置長度為5,預(yù)置散列范圍在[00000,zzzzz]之間。
[0115]在實際應(yīng)用中,將隨機值轉(zhuǎn)換為62進制下的數(shù)據(jù)符號后,該數(shù)據(jù)符號的長度可能為5,也可能小于5,因此,本實施例中的S125具體可以包括:當(dāng)數(shù)據(jù)符號的長度等于預(yù)置長度時,將數(shù)據(jù)符號確定為散列值;當(dāng)數(shù)據(jù)符號的長度小于預(yù)置長度時,在數(shù)據(jù)符號的高位側(cè)補充起始散列值的最高位字符,將補充后的數(shù)據(jù)符號確定為散列值,其中,所補充字符的長度與數(shù)據(jù)符號的長度之和等于預(yù)置長度。
[0116]需要說明的是,本實施例中的起始散列值即為預(yù)置散列范圍的最小值,即為00000,那么起始散列值的最高位字符為O。舉例來說,若選取單元15選取的隨機值為2016,那么轉(zhuǎn)換單元14將2016轉(zhuǎn)換為62進制后為ww,此時,由于轉(zhuǎn)化后的字符長度不滿足預(yù)置長度為5的要求,則在ww的高位側(cè)補充O,由于補充的字符長度與ww的字符長度之和為5可知,補充后的最終的散列值為OOOww;再舉例來說,若選取單元15選取的隨機值為716132831,那么轉(zhuǎn)換單元14將716132831轉(zhuǎn)換為62進制后為MsORx,該數(shù)據(jù)符號的長度與預(yù)置長度相同,貝IJMsORx為散列值。
[0117]還需要說明的是,本發(fā)明各實施例中不限制第一進制為62進制,也不限制第二進制為10進制,通常需要滿足第一進制的進位數(shù)高于第二進制的進位數(shù)即可,以保證數(shù)據(jù)庫具有較高的數(shù)據(jù)壓縮量。
[0118]進一步地,圖7為本發(fā)明實施例提供的又一種數(shù)據(jù)庫管理方法的流程圖。在上述圖5所示流程的基礎(chǔ)上,本實施例提供的數(shù)據(jù)庫管理方法,在S130之后,還可以包括:
[0119]S140,在生成用于處理待存儲數(shù)據(jù)的編號信息之后,將待存儲數(shù)據(jù)存入與該編號信息對應(yīng)的數(shù)據(jù)塊中。
[0120]本實施例的存儲模塊18以HBase中的存儲方式為例予以說明,在生成與待存儲數(shù)據(jù)對應(yīng)的編號信息后,可以參考圖1所示,若該編號信息為M0001,則可知該編號信息在[Μ0000,Ζζζζζ]之間,這個數(shù)據(jù)范圍內(nèi)的編號信息對應(yīng)的數(shù)據(jù)塊為Reg1n3,則將該數(shù)據(jù)存入Reg1n3中。
[0121]可選地,本實施例提供的方法還可以包括:
[0122]S150,在接收到處理指定數(shù)據(jù)的指令時,根據(jù)該指定數(shù)據(jù)的編號信息指示該編號信息對應(yīng)的數(shù)據(jù)塊對該指定數(shù)據(jù)進行處理。
[0123]與上述存儲方式類似地,當(dāng)數(shù)據(jù)存入HBase的Reg1n中后,如果需要對數(shù)據(jù)進行進一步地處理和操作,即在接收到處理指定數(shù)據(jù)的指令時,可以根據(jù)該指定數(shù)據(jù)在存入Reg1n前生成的編號信息,指示對應(yīng)的Reg1n對該指定數(shù)據(jù)進行處理,具體可以由加載該Reg1n的服務(wù)器,即Reg1nServer執(zhí)行處理。
[0124]需要說明的是,本實施例不限制S150處理的指定數(shù)據(jù)即是在S140中存儲的數(shù)據(jù),也就是說,S150中處理的指定數(shù)據(jù)可以是執(zhí)行SllO到S140之前已經(jīng)存入數(shù)據(jù)庫中的數(shù)據(jù),即本發(fā)明實施例不限制S150的執(zhí)行順序,如果數(shù)據(jù)庫為多線程操作,可以是在執(zhí)行SllO到S140的任意時刻執(zhí)行的,圖6所示流程以S150在SllO?S140之后執(zhí)行為例予以示出。
[0125]還需要說明的是,上述存儲數(shù)據(jù)的方式,以及對數(shù)據(jù)進行處理的方式,為HBase中的具體實現(xiàn)方式,在其它類型的數(shù)據(jù)庫中,存儲數(shù)據(jù)和處理數(shù)據(jù)的方式可以是不同的。即圖7僅是對數(shù)據(jù)存儲方式和數(shù)據(jù)處理方式的一個示意性的說明,并不以此限制本發(fā)明實施例的數(shù)據(jù)存儲方式和數(shù)據(jù)處理方式。
[0126]雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式及細節(jié)上進行任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。
【主權(quán)項】
1.一種數(shù)據(jù)庫管理裝置,其特征在于,所述數(shù)據(jù)庫管理裝置設(shè)置于終端設(shè)備中,所述數(shù)據(jù)庫管理裝置包括: 標(biāo)識碼生成模塊,用于生成待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼; 獲取模塊,用于在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取所述待存儲數(shù)據(jù)對應(yīng)的散列值; 編號生成模塊,用于根據(jù)所述標(biāo)識碼生成模塊生成的所述標(biāo)識碼和所述獲取模塊獲取的所述散列值,生成用于處理所述待存儲數(shù)據(jù)的編號信息,其中,所述編號信息為均勻散列的編碼字符。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫管理方法,其特征在于,所述獲取模塊包括: 轉(zhuǎn)換單元,用于將預(yù)置散列范圍轉(zhuǎn)換為第二進制下的數(shù)據(jù)范圍,其中,所述預(yù)置散列范圍為第一進制下的數(shù)據(jù)范圍,所述第二進制的進位數(shù)小于所述第一進制的進位數(shù); 選取單元,用于在所述轉(zhuǎn)換單元得到的所述第二進制下的數(shù)據(jù)范圍內(nèi)選取隨機值;所述轉(zhuǎn)換單元,還用于將所述選取單元選取的所述隨機值轉(zhuǎn)換為所述第一進制下的數(shù)據(jù)符號; 獲取單元,用于根據(jù)所述轉(zhuǎn)換單元得到的所述第一進制下的數(shù)據(jù)符號獲取所述散列值。3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)庫管理方法,其特征在于,所述獲取模塊還包括:確定單元,用于在所述轉(zhuǎn)換單元將所述預(yù)置散列范圍轉(zhuǎn)換為所述第二進制下的數(shù)據(jù)范圍之前,確定所述預(yù)置散列范圍和所述散列值的預(yù)置長度; 所述獲取單元用于根據(jù)所述轉(zhuǎn)換單元得到的所述第一進制下的數(shù)據(jù)符號獲取所述散列值,包括: 當(dāng)所述數(shù)據(jù)符號的長度等于所述預(yù)置長度時,將所述數(shù)據(jù)符號確定為所述散列值; 當(dāng)所述數(shù)據(jù)符號的長度小于所述預(yù)置長度時,在所述數(shù)據(jù)符號的高位側(cè)補充起始散列值的最高位字符,將補充后的數(shù)據(jù)符號確定為所述散列值,其中,所補充字符的長度與所述數(shù)據(jù)符號的長度之和等于所述預(yù)置長度。4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)庫管理方法,其特征在于,所述第一進制為62進制;和/或,所述第二進制為10進制。5.根據(jù)權(quán)利要求1?4中任一項所述的數(shù)據(jù)庫管理方法,其特征在于,所述數(shù)據(jù)庫管理裝置還包括: 存儲模塊,用于在所述編號生成模塊生成用于處理所述待存儲數(shù)據(jù)的編號信息之后,將所述待存儲數(shù)據(jù)存入與所述編號信息對應(yīng)的數(shù)據(jù)塊中;和/或, 處理模塊,用于在接收到處理指定數(shù)據(jù)的指令時,根據(jù)所述指定數(shù)據(jù)的編號信息指示所述編號信息對應(yīng)的數(shù)據(jù)塊對所述指定數(shù)據(jù)進行處理。6.一種數(shù)據(jù)庫管理方法,其特征在于,包括: 生成待存儲數(shù)據(jù)對應(yīng)的標(biāo)識碼; 在預(yù)先確定的數(shù)據(jù)范圍內(nèi)獲取所述待存儲數(shù)據(jù)對應(yīng)的散列值; 根據(jù)所述標(biāo)識碼和所述散列值,生成用于處理所述待存儲數(shù)據(jù)的編號信息,其中,所述編號信息為均勻散列的編碼字符。7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)庫管理方法,其特征在于,所述獲取所述待存儲數(shù)據(jù)對應(yīng)的散列值,包括: 將預(yù)置散列范圍轉(zhuǎn)換為第二進制下的數(shù)據(jù)范圍,其中,所述預(yù)置散列范圍為第一進制下的數(shù)據(jù)范圍,所述第二進制的進位數(shù)小于所述第一進制的進位數(shù); 在所述第二進制下的數(shù)據(jù)范圍內(nèi)選取隨機值; 將所述隨機值轉(zhuǎn)換為所述第一進制下的數(shù)據(jù)符號; 根據(jù)所述第一進制下的數(shù)據(jù)符號獲取所述散列值。8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)庫管理方法,其特征在于,所述方法還包括:所述將預(yù)置散列范圍轉(zhuǎn)換為第二進制下的數(shù)據(jù)范圍之前,確定所述預(yù)置散列范圍和所述散列值的預(yù)置長度; 所述根據(jù)所述第一進制下的數(shù)據(jù)符號獲取所述散列值,包括: 當(dāng)所述數(shù)據(jù)符號的長度等于所述預(yù)置長度時,將所述數(shù)據(jù)符號確定為所述散列值; 當(dāng)所述數(shù)據(jù)符號的長度小于所述預(yù)置長度時,在所述數(shù)據(jù)符號的高位側(cè)補充起始散列值的最高位字符,將補充后的數(shù)據(jù)符號確定為所述散列值,其中,所補充字符的長度與所述數(shù)據(jù)符號的長度之和等于所述預(yù)置長度。9.根據(jù)權(quán)利要求7所述的數(shù)據(jù)庫管理方法,其特征在于,所述第一進制為62進制;和/或,所述第二進制為10進制。10.根據(jù)權(quán)利要求6?9中任一項所述的數(shù)據(jù)庫管理方法,其特征在于,所述方法還包括: 在生成用于處理所述待存儲數(shù)據(jù)的編號信息之后,將所述待存儲數(shù)據(jù)存入與所述編號信息對應(yīng)的數(shù)據(jù)塊中;和/或, 在接收到處理指定數(shù)據(jù)的指令時,根據(jù)所述指定數(shù)據(jù)的編號信息指示所述編號信息對應(yīng)的數(shù)據(jù)塊對所述指定數(shù)據(jù)進行處理。
【文檔編號】G06F17/30GK105930521SQ201610354929
【公開日】2016年9月7日
【申請日】2016年5月25日
【發(fā)明人】陳奇川
【申請人】努比亞技術(shù)有限公司