一種數(shù)據(jù)查詢方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)查詢技術領域,特別是涉及一種數(shù)據(jù)查詢方法及裝置。
【背景技術】
[0002]隨著系統(tǒng)數(shù)據(jù)的越來越大,分布式數(shù)據(jù)庫應用而生。其中,分布式數(shù)據(jù)庫是由一組數(shù)據(jù)組成的,這組數(shù)據(jù)分布在網(wǎng)絡系統(tǒng)的不同節(jié)點上,網(wǎng)絡中每個節(jié)點具有獨立處理的能力,可以執(zhí)行局部應用(指對本節(jié)點的數(shù)據(jù)進行存取、查詢等的應用);同時,每個節(jié)點也能通過網(wǎng)絡通訊支持全局應用(指存取兩個或兩個以上的節(jié)點的數(shù)據(jù)庫應用)。其中,每一組數(shù)據(jù)通常被稱為分片數(shù)據(jù)庫,且不同的分片數(shù)據(jù)庫存儲有不同的數(shù)據(jù)內(nèi)容;同時,分片數(shù)據(jù)庫會包括至少兩個所存儲數(shù)據(jù)內(nèi)容相同的子數(shù)據(jù)庫,這樣使得分片數(shù)據(jù)庫所存儲的內(nèi)容存在副本,達到了提高數(shù)據(jù)安全性的目的。
[0003]現(xiàn)有技術中,當網(wǎng)絡系統(tǒng)中的管理節(jié)點(該管理節(jié)點可以為存儲有分片數(shù)據(jù)庫的節(jié)點或不同于存儲有分片數(shù)據(jù)庫的節(jié)點的代理節(jié)點)接收到針對于某一分布式數(shù)據(jù)庫的目標數(shù)據(jù)查詢請求后,基于該數(shù)據(jù)查詢請求所對應的數(shù)據(jù)查詢范圍,確定該目標數(shù)據(jù)查詢請求所針對的至少一個目標分片數(shù)據(jù)庫;生成針對于至少一個目標分片數(shù)據(jù)庫的子數(shù)據(jù)查詢請求,其中,子數(shù)據(jù)查詢請求與分片式數(shù)據(jù)庫具有唯一對應性,各個子數(shù)據(jù)查詢請求所對應的總的數(shù)據(jù)查詢范圍等同于目標數(shù)據(jù)查詢請求所針對的數(shù)據(jù)查詢范圍;將各個一級數(shù)據(jù)查詢請求發(fā)送給相對應目標分片數(shù)據(jù)庫所在的節(jié)點;相應的,接收到一級數(shù)據(jù)查詢請求的節(jié)點基于所接收到的一級數(shù)據(jù)查詢請求對相應的目標分片數(shù)據(jù)庫進行查詢處理,并將查詢結果進行反饋處理;而該管理節(jié)點在接收到各個一級數(shù)據(jù)查詢請求所對應的查詢結果后,匯總所述查詢結果,進而將匯總后的查詢結果作為所述目標數(shù)據(jù)查詢請求的目標查詢結果O
[0004]盡管現(xiàn)有技術中的分布查詢方式具有較高的查詢速率,但是,隨著查詢速率要求的提高,如何進一步提高查詢分布式數(shù)據(jù)庫的速率是一個亟待解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例的目的在于提供一種數(shù)據(jù)查詢方法及裝置,以進一步提高查詢分布式數(shù)據(jù)庫的速率。具體技術方案如下:
[0006]第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)查詢方法,包括:
[0007]在接收到針對于分布式數(shù)據(jù)庫的目標數(shù)據(jù)查詢請求后,基于所述目標數(shù)據(jù)查詢請求所對應的數(shù)據(jù)查詢范圍,確定所述目標數(shù)據(jù)查詢請求所針對的至少一個目標分片數(shù)據(jù)庫;其中,所述分布式數(shù)據(jù)庫的數(shù)據(jù)通過至少兩個分片數(shù)據(jù)庫進行存儲,每一分片數(shù)據(jù)庫包括至少兩個子數(shù)據(jù)庫;
[0008]生成針對于所述至少一個目標分片數(shù)據(jù)庫的一級數(shù)據(jù)查詢請求;其中,所述一級數(shù)據(jù)查詢請求與目標分片數(shù)據(jù)庫具有唯一對應性,各個一級數(shù)據(jù)查詢請求所針對的總的數(shù)據(jù)查詢范圍與所述目標數(shù)據(jù)查詢請求所針對的數(shù)據(jù)查詢范圍相同;
[0009]判斷所述目標數(shù)據(jù)查詢請求是否符合預設拆分條件,如果是,生成各個一級數(shù)據(jù)查詢請求所對應的二級數(shù)據(jù)查詢請求;其中,所述二級數(shù)據(jù)查詢請求與相應目標分片數(shù)據(jù)庫的子數(shù)據(jù)庫具有唯一對應性,每個一級數(shù)據(jù)查詢請求所對應的二級數(shù)據(jù)查詢請求所針對的總的數(shù)據(jù)查詢范圍與該一級數(shù)據(jù)查詢請求所對應的數(shù)據(jù)查詢范圍相同;
[0010]將各個一級數(shù)據(jù)查詢請求所對應的二級數(shù)據(jù)查詢請求發(fā)送給該一級數(shù)據(jù)查詢請求所對應目標分片數(shù)據(jù)庫所在的節(jié)點,以使得所述節(jié)點基于所接收到的二級數(shù)據(jù)查詢請求對相應的子數(shù)據(jù)庫進行查詢處理,并將查詢結果進行反饋處理;
[0011]在接收到各個二級數(shù)據(jù)查詢請求所對應的查詢結果后,匯總所述查詢結果;
[0012]將匯總后的查詢結果作為所述目標數(shù)據(jù)查詢請求的目標查詢結果。
[0013]優(yōu)選的,所述判斷所述目標數(shù)據(jù)查詢請求是否符合預設拆分條件,包括:
[0014]判斷所述目標數(shù)據(jù)查詢請求是否攜帶預設查詢命令,如果是,表明所述目標數(shù)據(jù)查詢請求符合預設拆分條件。
[0015]優(yōu)選的,所述預設查詢命令,包括:
[0016]表明匹配或累加的查詢命令。
[0017]優(yōu)選的,所述生成各個一級數(shù)據(jù)查詢請求所對應的二級數(shù)據(jù)查詢請求,包括:
[0018]確定各個一級查詢請求所對應的目標分片數(shù)據(jù)庫的子數(shù)據(jù)庫的數(shù)量;
[0019]將各個一級數(shù)據(jù)查詢請求拆分為所對應子數(shù)據(jù)庫的數(shù)量的二級數(shù)據(jù)查詢請求。
[0020]優(yōu)選的,所述生成各個一級數(shù)據(jù)查詢請求所對應的二級數(shù)據(jù)查詢請求,包括:
[0021]獲得各個一級數(shù)據(jù)查詢請求所對應的目標分片數(shù)據(jù)庫的允許拆分數(shù)量;
[0022]將各個一級數(shù)據(jù)查詢請求拆分為所對應允許拆分數(shù)量的二級數(shù)據(jù)查詢請求。
[0023]優(yōu)選的,本發(fā)明實施例所提供的數(shù)據(jù)查詢方法,還包括:
[0024]當判斷出所述目標數(shù)據(jù)查詢請求不符合預設拆分條件時,將各個一級數(shù)據(jù)查詢請求發(fā)送給相對應目標分片數(shù)據(jù)庫所在的節(jié)點,以使得所述節(jié)點基于所接收到的一級數(shù)據(jù)查詢請求對相應的目標分片數(shù)據(jù)庫進行查詢處理,并將查詢結果進行反饋處理;
[0025]在接收到各個一級數(shù)據(jù)查詢請求所對應的查詢結果后,匯總所述查詢結果;
[0026]將匯總后的查詢結果作為所述目標數(shù)據(jù)查詢請求的目標查詢結果。
[0027]第二方面,本發(fā)明實施例提供了一種數(shù)據(jù)查詢裝置,包括:
[0028]目標分片數(shù)據(jù)庫確定模塊,用于在接收到針對于分布式數(shù)據(jù)庫的目標數(shù)據(jù)查詢請求后,基于所述目標數(shù)據(jù)查詢請求所對應的數(shù)據(jù)查詢范圍,確定所述目標數(shù)據(jù)查詢請求所針對的至少一個目標分片數(shù)據(jù)庫;其中,所述分布式數(shù)據(jù)庫的數(shù)據(jù)通過至少兩個分片數(shù)據(jù)庫進行存儲,每一分片數(shù)據(jù)庫包括至少兩個子數(shù)據(jù)庫;
[0029]一級數(shù)據(jù)查詢請求生成模塊,用于生成針對于所述至少一個目標分片數(shù)據(jù)庫的一級數(shù)據(jù)查詢請求;其中,所述一級數(shù)據(jù)查詢請求與目標分片數(shù)據(jù)庫具有唯一對應性,各個一級數(shù)據(jù)查詢請求所針對的總的數(shù)據(jù)查詢范圍與所述目標數(shù)據(jù)查詢請求所針對的數(shù)據(jù)查詢范圍相同;
[0030]判斷處理模塊,用于判斷所述目標數(shù)據(jù)查詢請求是否符合預設拆分條件,如果是,觸發(fā)二級數(shù)據(jù)查詢請求生成模塊;
[0031]所述二級數(shù)據(jù)查詢請求生成模塊,用于生成各個一級數(shù)據(jù)查詢請求所對應的二級數(shù)據(jù)查詢請求;其中,所述二級數(shù)據(jù)查詢請求與相應目標分片數(shù)據(jù)庫的子數(shù)據(jù)庫具有唯一對應性,每個一級數(shù)據(jù)查詢請求所對應的二級數(shù)據(jù)查詢請求所針對的總的數(shù)據(jù)查詢范圍與該一級數(shù)據(jù)查詢請求所對應的數(shù)據(jù)查詢范圍相同;
[0032]二級數(shù)據(jù)查詢請求發(fā)送模塊,用于將各個一級數(shù)據(jù)查詢請求所對應的二級數(shù)據(jù)查詢請求發(fā)送給該一級數(shù)據(jù)查詢請求所對應目標分片數(shù)據(jù)庫所在的節(jié)點,以使得所述節(jié)點基于所接收到的二級數(shù)據(jù)查詢請求對相應的子數(shù)據(jù)庫進行查詢處理,并將查詢結果進行反饋處理;
[0033]第一查詢結果匯總模塊,用于在接收到各個二級數(shù)據(jù)查詢請求所對應的查詢結果后,匯總所述查詢結果;
[0034]第一目標查詢結果確定模塊,用于將匯總后的查詢結果作為所述目標數(shù)據(jù)查詢請求的目標查詢結果。
[0035]優(yōu)選的,所述判斷處理模塊具體用于判斷所述目標數(shù)據(jù)查詢請求是否攜帶預設查詢命令,如果是,觸發(fā)二級數(shù)據(jù)查詢請求生成模塊。
[0036]優(yōu)選的,所述預設查詢命令,包括:
[0037]表明匹配或累加的查詢命令。
[0038]優(yōu)選的,所述二級數(shù)據(jù)查詢請求生成模塊,包括:
[0039]第一拆分數(shù)量確定單元,用于確定各個一級查詢