本發(fā)明涉及分布式數(shù)據(jù)庫,尤其涉及一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法及系統(tǒng)。
背景技術(shù):
1、主備分片架構(gòu)保障了分布式數(shù)據(jù)庫的數(shù)據(jù)安全和高可用性,使其能夠從故障中快速恢復(fù),但是在恢復(fù)過程中的某些場景下,存在著一類性能下降問題。
2、在主備分片的場景下,擴(kuò)容過程中就會出現(xiàn)只有部分表數(shù)據(jù)重分布完成的情況,由于此時兩張表的分布方式不同,查詢過程中就需要將其中一張表的完整數(shù)據(jù)發(fā)送到全部節(jié)點(diǎn)上,或者將來自其中一張表的數(shù)據(jù)從一種分布方式重新分布為另一種,在保證來自兩表的數(shù)據(jù)分布方式相同的情況下,繼續(xù)進(jìn)行查詢。
3、在實(shí)際業(yè)務(wù)中,查詢涉及到的表數(shù)量更多,需要的重分布操作更多,重新分布的數(shù)據(jù)量也更大,因此此類重分布開銷很大。這就導(dǎo)致在節(jié)點(diǎn)替換后,各表數(shù)據(jù)還沒有完全恢復(fù)到之前的分布方式時,原本設(shè)計(jì)好的可以直接在各節(jié)點(diǎn)上直接執(zhí)行的多表關(guān)聯(lián)查詢?nèi)蝿?wù),在上述場景下存在大量節(jié)點(diǎn)間數(shù)據(jù)傳輸,查詢效率大大降低。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明旨在至少解決相關(guān)技術(shù)中存在的技術(shù)問題之一。為此,本發(fā)明提供一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法及系統(tǒng)。
2、本發(fā)明提供一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,包括:
3、s1:接收并解析查詢語句,獲得待查詢表的分布信息;
4、s2:根據(jù)所述分布信息,將存在包含關(guān)系的包含表與被包含表進(jìn)行分布編號替換,獲得相同分布編號的待關(guān)聯(lián)查詢表;
5、s3:由待關(guān)聯(lián)查詢表的各節(jié)點(diǎn)分片上根據(jù)所述查詢語句執(zhí)行查詢,獲得多個查詢結(jié)果;
6、s4:根據(jù)多個查詢結(jié)果輸出終查詢結(jié)果。
7、根據(jù)本發(fā)明提供的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,步驟s1進(jìn)一步包括:
8、s11:解析接收到的查詢語句,獲得所述查詢語句中包括的所有表;
9、s12:查詢所有表的分布方式;
10、s13:根據(jù)分布方式,依次對待查詢表包括的多個分片分布節(jié)點(diǎn)進(jìn)行編號,獲得待查詢表的分布信息。
11、根據(jù)本發(fā)明提供的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,步驟s1中,所述待查詢表包括第一表及第二表。
12、根據(jù)本發(fā)明提供的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,步驟s2中,所述包含關(guān)系的判斷方法為:
13、在相同節(jié)點(diǎn)中,當(dāng)所述第二表中的任一分片在所述第一表中未查詢到對應(yīng)分片時,所述第一表與所述第二表不存在包含關(guān)系;
14、在相同節(jié)點(diǎn)中,當(dāng)所述第二表的每個分片在所述第一表中均存在對應(yīng)分片時,所述第一表與所述第二表存在包含關(guān)系。
15、根據(jù)本發(fā)明提供的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,步驟s2中,
16、當(dāng)所述第一表的分片總數(shù)大于所述第二表時,將所述第一表作為包含表,將所述第二表作為被包含表;
17、當(dāng)所述第一表的分片總數(shù)小于所述第二表時,將所述第二表作為包含表,將所述第一表作為被包含表。
18、根據(jù)本發(fā)明提供的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,步驟s2中具體包括:
19、當(dāng)所述包含表為所述第一表,所述被包含表為所述第二表時,將所述第二表的分布編號替換為所述第一表的分布編號;
20、當(dāng)所述包含表為所述第二表,所述被包含表為所述第一表時,將所述第一表的分布編號替換為所述第二表的分布編號。
21、根據(jù)本發(fā)明提供的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,步驟s3中,對待關(guān)聯(lián)查詢表執(zhí)行查詢時,對待關(guān)聯(lián)查詢表中的未完成表數(shù)據(jù)重分布的節(jié)點(diǎn)不進(jìn)行查詢。
22、根據(jù)本發(fā)明提供的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,當(dāng)查詢語句更改時,待關(guān)聯(lián)查詢表的分布編號恢復(fù)至待查詢表的分布信息。
23、本發(fā)明還提供一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢系統(tǒng),用以執(zhí)行如以上任一項(xiàng)所述的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,包括:
24、解析模塊:用于接收并解析查詢語句,獲得待查詢表的分布信息;
25、判別模塊:用于根據(jù)所述分布信息,判斷待查詢表之間是否存在包含關(guān)系;
26、替換模塊:用于將存在包含關(guān)系的包含表與被包含表進(jìn)行分布編號替換,獲得相同分布編號的待關(guān)聯(lián)查詢表;
27、查詢模塊:用于由待關(guān)聯(lián)查詢表的各節(jié)點(diǎn)分片上根據(jù)所述查詢語句執(zhí)行查詢,獲得多個查詢結(jié)果,還用于根據(jù)多個查詢結(jié)果輸出終查詢結(jié)果。
28、本發(fā)明提供的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法及系統(tǒng),根據(jù)節(jié)點(diǎn)替換場景下的數(shù)據(jù)分布特點(diǎn),提出了降低節(jié)點(diǎn)替換導(dǎo)致的性能損失的方法,由于節(jié)點(diǎn)替換場景下產(chǎn)生的兩種分布方式具有一定的特殊性,即擴(kuò)容后的分布方式能夠包含另一種,所以本發(fā)明通過判斷不同的分布情況之間是否存在包含關(guān)系,并利用這種包含關(guān)系盡量避免重分布過程帶來的大量開銷,能夠保證在查詢結(jié)果準(zhǔn)確無誤的前提下,大幅提升了查詢效率。
29、本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
1.一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,其特征在于,步驟s1進(jìn)一步包括:
3.根據(jù)權(quán)利要求1所述的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,其特征在于,步驟s1中,所述待查詢表包括第一表及第二表。
4.根據(jù)權(quán)利要求3所述的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,其特征在于,步驟s2中,所述包含關(guān)系的判斷方法為:
5.根據(jù)權(quán)利要求4所述的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,其特征在于,步驟s2中,
6.根據(jù)權(quán)利要求5所述的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,其特征在于,步驟s2中具體包括:
7.根據(jù)權(quán)利要求1所述的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,其特征在于,步驟s3中,對待關(guān)聯(lián)查詢表執(zhí)行查詢時,對待關(guān)聯(lián)查詢表中的未完成表數(shù)據(jù)重分布的節(jié)點(diǎn)不進(jìn)行查詢。
8.根據(jù)權(quán)利要求1所述的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,其特征在于,當(dāng)查詢語句更改時,待關(guān)聯(lián)查詢表的分布編號恢復(fù)至待查詢表的分布信息。
9.一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢系統(tǒng),用以執(zhí)行如權(quán)利要求1至8任一項(xiàng)所述的一種節(jié)點(diǎn)替換場景下的mpp數(shù)據(jù)庫查詢方法,其特征在于,包括: