本發(fā)明涉及計(jì)算機(jī)、大數(shù)據(jù)和數(shù)據(jù)庫(kù),更具體地,涉及一種用于分布式的數(shù)據(jù)查詢方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、隨著分布式的數(shù)據(jù)查詢能夠處理的數(shù)據(jù)量和查詢復(fù)雜性的不斷增加,分布式的數(shù)據(jù)查詢?cè)诖髷?shù)據(jù)和云計(jì)算環(huán)境中變得越來(lái)越重要。分布式的數(shù)據(jù)查詢?cè)试S用戶跨多個(gè)物理或邏輯上分離的節(jié)點(diǎn)訪問(wèn)和檢索數(shù)據(jù)。
2、在實(shí)現(xiàn)本發(fā)明構(gòu)思的過(guò)程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)中至少存在如下問(wèn)題:在將分布式的數(shù)據(jù)查詢的查詢結(jié)果導(dǎo)出時(shí),需要多個(gè)數(shù)據(jù)節(jié)點(diǎn)將自己的查詢結(jié)果緩存到本地,最后由多個(gè)數(shù)據(jù)節(jié)點(diǎn)中任務(wù)發(fā)起節(jié)點(diǎn)作為數(shù)據(jù)歸集節(jié)點(diǎn),存儲(chǔ)其他數(shù)據(jù)節(jié)點(diǎn)的查詢結(jié)果,并將所有數(shù)據(jù)節(jié)點(diǎn)的查詢結(jié)果合并成完整的查詢結(jié)果后導(dǎo)出。當(dāng)任務(wù)發(fā)起節(jié)點(diǎn)可用空間不足以存儲(chǔ)所有數(shù)據(jù)節(jié)點(diǎn)的查詢結(jié)果時(shí),會(huì)造成查詢結(jié)果無(wú)法正常導(dǎo)出的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明提供了一種用于分布式的數(shù)據(jù)查詢方法、裝置、設(shè)備、介質(zhì)。
2、本發(fā)明的一個(gè)方面提供了一種用于分布式的數(shù)據(jù)查詢方法,包括:響應(yīng)于接收到來(lái)自用戶的查詢請(qǐng)求,確定與查詢請(qǐng)求關(guān)聯(lián)的n個(gè)初始數(shù)據(jù)節(jié)點(diǎn),以便n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)各自進(jìn)行數(shù)據(jù)查詢得到查詢結(jié)果,其中,n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)為分布式集群中的部分或者全部節(jié)點(diǎn),n為大于或者等于2的整數(shù);基于n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)各自對(duì)應(yīng)的可用內(nèi)存量,從n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)中篩選m個(gè)中間數(shù)據(jù)節(jié)點(diǎn),其中,m≤n,且m為正整數(shù);基于m個(gè)中間數(shù)據(jù)節(jié)點(diǎn)各自對(duì)應(yīng)的查詢結(jié)果的內(nèi)存占用量,從m個(gè)中間數(shù)據(jù)節(jié)點(diǎn)中確定目標(biāo)數(shù)據(jù)節(jié)點(diǎn);以及將除目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之外的其他初始數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的查詢結(jié)果發(fā)送至目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以便目標(biāo)數(shù)據(jù)節(jié)點(diǎn)將n個(gè)查詢結(jié)果合并后返回給用戶。
3、根據(jù)本發(fā)明的實(shí)施例,基于m個(gè)中間數(shù)據(jù)節(jié)點(diǎn)各自進(jìn)行數(shù)據(jù)查詢得到的查詢結(jié)果的內(nèi)存占用量,從m個(gè)中間數(shù)據(jù)節(jié)點(diǎn)中確定目標(biāo)數(shù)據(jù)節(jié)點(diǎn),包括:基于m個(gè)中間數(shù)據(jù)節(jié)點(diǎn)各自進(jìn)行數(shù)據(jù)查詢得到的查詢結(jié)果的內(nèi)存占用量,對(duì)m個(gè)中間數(shù)據(jù)節(jié)點(diǎn)進(jìn)行降序排序,得到排序結(jié)果;以及將位于排序結(jié)果第一位的中間數(shù)據(jù)節(jié)點(diǎn)確定為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)。
4、根據(jù)本發(fā)明的實(shí)施例,用于分布式的數(shù)據(jù)查詢方法還包括:在確定目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之后,將目標(biāo)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行鎖定;設(shè)置目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的延遲時(shí)間,其中,在延遲時(shí)間內(nèi)禁止目標(biāo)數(shù)據(jù)節(jié)點(diǎn)作為其他查詢請(qǐng)求的數(shù)據(jù)歸集節(jié)點(diǎn)。
5、根據(jù)本發(fā)明的實(shí)施例,基于n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)各自對(duì)應(yīng)的可用內(nèi)存量,從n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)中篩選m個(gè)中間數(shù)據(jù)節(jié)點(diǎn),包括:在確定n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)各自對(duì)應(yīng)的可用內(nèi)存量存在大于或者等于內(nèi)存閾值的情況下,從n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)中篩選初始數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的可用內(nèi)存量大于或者等于內(nèi)存閾值的初始數(shù)據(jù)節(jié)點(diǎn)作為中間數(shù)據(jù)節(jié)點(diǎn)。
6、根據(jù)本發(fā)明的實(shí)施例,用于分布式的數(shù)據(jù)查詢方法還包括:在確定n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)各自對(duì)應(yīng)的可用內(nèi)存量均小于內(nèi)存閾值的情況下,將n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)各自進(jìn)行數(shù)據(jù)查詢得到的查詢結(jié)果發(fā)送至異地服務(wù)器,以便異地服務(wù)器將n個(gè)查詢結(jié)果合并后返回給用戶。
7、根據(jù)本發(fā)明的實(shí)施例,用于分布式的數(shù)據(jù)查詢方法還包括:在確定接收到多個(gè)查詢請(qǐng)求的情況下,對(duì)多個(gè)查詢請(qǐng)求并行處理。
8、根據(jù)本發(fā)明的實(shí)施例,用于分布式的數(shù)據(jù)查詢方法還包括:在確定存在至少兩個(gè)查詢請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)為同一個(gè)目標(biāo)數(shù)據(jù)節(jié)點(diǎn)的情況下,根據(jù)接收到至少兩個(gè)查詢請(qǐng)求的時(shí)間,確定用于反饋與至少兩個(gè)所述查詢請(qǐng)求相對(duì)應(yīng)的至少兩個(gè)合并后查詢結(jié)果的先后順序。
9、本發(fā)明的另一個(gè)方面提供了一種用于分布式的數(shù)據(jù)查詢裝置,包括:第一確定模塊,用于響應(yīng)于接收到來(lái)自用戶的查詢請(qǐng)求,確定與查詢請(qǐng)求關(guān)聯(lián)的n個(gè)初始數(shù)據(jù)節(jié)點(diǎn),以便n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)各自進(jìn)行數(shù)據(jù)查詢得到查詢結(jié)果,其中,n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)為分布式集群中的部分或者全部節(jié)點(diǎn),n為大于或者等于2的整數(shù);篩選模塊,用于基于n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)各自對(duì)應(yīng)的可用內(nèi)存量,從n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)中篩選m個(gè)中間數(shù)據(jù)節(jié)點(diǎn),其中,m≤n,且m為正整數(shù);第二確定模塊,用于基于m個(gè)中間數(shù)據(jù)節(jié)點(diǎn)各自對(duì)應(yīng)的查詢結(jié)果的內(nèi)存占用量,從m個(gè)中間數(shù)據(jù)節(jié)點(diǎn)中確定目標(biāo)數(shù)據(jù)節(jié)點(diǎn);以及第一發(fā)送模塊,用于將除目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之外的其他初始數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的查詢結(jié)果發(fā)送至目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以便目標(biāo)數(shù)據(jù)節(jié)點(diǎn)將n個(gè)查詢結(jié)果合并后返回給用戶。
10、本發(fā)明的另一個(gè)方面提供了一種電子設(shè)備,包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器,用于存儲(chǔ)一個(gè)或多個(gè)程序,其中,當(dāng)一個(gè)或多個(gè)程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得一個(gè)或多個(gè)處理器實(shí)現(xiàn)如上的用于分布式的數(shù)據(jù)查詢方法。
11、本發(fā)明的另一方面提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,指令在被執(zhí)行時(shí)用于實(shí)現(xiàn)如上的用于分布式的數(shù)據(jù)查詢方法。
12、本發(fā)明的另一方面提供了一種計(jì)算機(jī)程序產(chǎn)品,計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可執(zhí)行指令,指令在被執(zhí)行時(shí)用于實(shí)現(xiàn)如上的用于分布式的數(shù)據(jù)查詢方法。
13、根據(jù)本發(fā)明的實(shí)施例,基于可用內(nèi)存量,從與查詢請(qǐng)求關(guān)聯(lián)的多個(gè)初始數(shù)據(jù)節(jié)點(diǎn)中篩選多個(gè)中間數(shù)據(jù)節(jié)點(diǎn)。由于基于數(shù)據(jù)節(jié)點(diǎn)的可用內(nèi)存量篩選數(shù)據(jù)節(jié)點(diǎn),由此篩選的中間數(shù)據(jù)節(jié)點(diǎn)能夠滿足可用內(nèi)存量的需求,進(jìn)而至少部分避免將中間數(shù)據(jù)節(jié)點(diǎn)作為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)保存所有數(shù)據(jù)節(jié)點(diǎn)的查詢結(jié)果時(shí)發(fā)生內(nèi)存溢出的情況?;诙鄠€(gè)中間數(shù)據(jù)節(jié)點(diǎn)各自進(jìn)行數(shù)據(jù)查詢得到的查詢結(jié)果的內(nèi)存占用量,從多個(gè)中間數(shù)據(jù)節(jié)點(diǎn)中篩選目標(biāo)數(shù)據(jù)節(jié)點(diǎn),在滿足可用內(nèi)存量的需求的基礎(chǔ)上,結(jié)合每個(gè)中間數(shù)據(jù)節(jié)點(diǎn)各自進(jìn)行數(shù)據(jù)查詢得到的查詢結(jié)果的內(nèi)存占用量,能夠盡可能減少將其他初始數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的查詢結(jié)果發(fā)送至目標(biāo)數(shù)據(jù)節(jié)點(diǎn)消耗的資源,加快傳輸效率。通過(guò)兩次篩選確定目標(biāo)數(shù)據(jù)節(jié)點(diǎn),不僅能夠避免目標(biāo)數(shù)據(jù)節(jié)點(diǎn)在保存所有數(shù)據(jù)節(jié)點(diǎn)的查詢結(jié)果時(shí)發(fā)生內(nèi)存溢出的情況,還能減少消耗的傳輸資源,加快傳輸效率,進(jìn)而及時(shí)響應(yīng)用戶的查詢請(qǐng)求,增強(qiáng)用戶體驗(yàn)。
1.一種用于分布式的數(shù)據(jù)查詢方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于m個(gè)所述中間數(shù)據(jù)節(jié)點(diǎn)各自對(duì)應(yīng)的所述查詢結(jié)果的內(nèi)存占用量,從m個(gè)所述中間數(shù)據(jù)節(jié)點(diǎn)中確定目標(biāo)數(shù)據(jù)節(jié)點(diǎn),包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于n個(gè)所述初始數(shù)據(jù)節(jié)點(diǎn)各自對(duì)應(yīng)的可用內(nèi)存量,從n個(gè)初始數(shù)據(jù)節(jié)點(diǎn)中篩選m個(gè)中間數(shù)據(jù)節(jié)點(diǎn),包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求1~5任一項(xiàng)所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括:
8.一種用于分布式的數(shù)據(jù)查詢裝置,其特征在于,所述裝置包括:
9.一種電子設(shè)備,包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有可執(zhí)行指令,該指令被處理器執(zhí)行時(shí)使處理器實(shí)現(xiàn)權(quán)利要求1至7中任一項(xiàng)所述的方法。