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