專利名稱:數(shù)據(jù)查詢的方法、設(shè)備及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù),具體涉及數(shù)據(jù)查詢的方法、設(shè)備及系統(tǒng),屬于計算機(jī)領(lǐng)域。
背景技術(shù):
目前,對于海量數(shù)據(jù)的存儲查詢方案主要分為集中式和分布式。其中,在集中式方案中,采用數(shù)據(jù)庫加單存儲節(jié)點(diǎn)的架構(gòu),但隨著單存儲節(jié)點(diǎn)上數(shù)據(jù)的不斷増大,要從海量數(shù)據(jù)中查詢前N條數(shù)據(jù),如TOP N查詢;與單存儲節(jié)點(diǎn)配合的傳統(tǒng)數(shù)據(jù)庫產(chǎn)品已難以滿足實(shí)時性需求。在分布式方案中存在多個存儲節(jié)點(diǎn),對于大規(guī)模數(shù)據(jù)采用多個存儲節(jié)點(diǎn)的分布式存儲,但分布式存儲主要針對的多為網(wǎng)頁、圖片等等單列數(shù)據(jù) 的存儲或查詢需求,而對多列數(shù)據(jù)存儲和查詢,如TOP N查詢需求,還沒有可滿足實(shí)時性需求的成熟解決方案?,F(xiàn)有技術(shù)中,要從分散存儲的海量數(shù)據(jù)中做TOP N查詢,都要取出大量冗余數(shù)據(jù),再通過映射/歸并(Map/Reduce)的方式進(jìn)行排序并篩選結(jié)果,這樣,當(dāng)有ー個部分的數(shù)據(jù)讀取緩慢時,就要一直等待這部分?jǐn)?shù)據(jù),導(dǎo)致數(shù)據(jù)查詢的實(shí)時性差,數(shù)據(jù)查詢效率低下。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)查詢的方法,可以提高數(shù)據(jù)查詢的實(shí)時性。本發(fā)明實(shí)施例還提供了相應(yīng)的設(shè)備及系統(tǒng)。一方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)查詢的方法,包括獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù),并將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到ー個歸并集合,并指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后的歸并數(shù)據(jù),所述最后的歸并數(shù)據(jù)為最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的;向用戶端返回所述最后的歸并數(shù)據(jù)。另ー方面,本發(fā)明實(shí)施例提供一種服務(wù)器,包括獲取單元,用于獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù);分配単元,用于將所述獲取單元獲取的每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);劃分單元,用于在所述分配単元分配所述每個查詢子任務(wù)后,按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合;指定単元,用于指定所述劃分單元劃分后的歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;所述獲取単元,還用于在所述劃分単元和所述指定單元重復(fù)執(zhí)行所述劃分歸并集合和所述指定歸并的步驟后,獲取最后的歸并數(shù)據(jù),所述最后的歸并數(shù)據(jù)為最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的;發(fā)送單元,用于向用戶端返回所述獲取單元獲取的最后的歸并數(shù)據(jù)。另ー方面,本發(fā)明實(shí)施例提供ー種數(shù)據(jù)查詢系統(tǒng),包括調(diào)度服務(wù)器、任務(wù)服務(wù)器、多個執(zhí)行節(jié)點(diǎn)、用戶端;所述調(diào)度服務(wù)器從所述任務(wù)服務(wù)器獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù),并將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);向用戶端返回所述最后的歸并數(shù)據(jù)。另ー方面,本發(fā)明實(shí)施例還提供ー種數(shù)據(jù)查詢系統(tǒng),包括調(diào)度服務(wù)器、多個執(zhí)行節(jié)點(diǎn)、用戶端;所述調(diào)度服務(wù)器獲取查詢?nèi)蝿?wù)后,將所述查詢?nèi)蝿?wù)拆分成多個查詢子任務(wù),并將所述多個查詢子任務(wù)分配給每個執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所 述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);向用戶端返回所述最后的歸并數(shù)據(jù)。本發(fā)明實(shí)施例采用獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù),并將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);向用戶端返回所述最后的歸并數(shù)據(jù)。與現(xiàn)有技術(shù)中當(dāng)有ー個部分的數(shù)據(jù)讀取緩慢時,就要一直等待這部分?jǐn)?shù)據(jù)相比,本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢的方法,可以提高數(shù)據(jù)查詢的實(shí)時性。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的ー些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實(shí)施例中數(shù)據(jù)查詢的方法的ー實(shí)施例示意圖;圖2是本發(fā)明實(shí)施例中一應(yīng)用場景實(shí)施例示意圖;圖3A是本發(fā)明實(shí)施例中另ー應(yīng)用場景實(shí)施例示意圖;圖3B是本發(fā)明實(shí)施例中另ー應(yīng)用場景實(shí)施例示意圖;圖4是本發(fā)明實(shí)施例中另ー應(yīng)用場景實(shí)施例示意圖;圖5是本發(fā)明實(shí)施例中服務(wù)器的ー實(shí)施例示意圖6是本發(fā)明實(shí)施例中服務(wù)器的另ー實(shí)施例示意圖;圖7是本發(fā)明實(shí)施例中服務(wù)器的另ー實(shí)施例示意圖;圖8是本發(fā)明實(shí)施例中服務(wù)器的另ー實(shí)施例示意圖;圖9是本發(fā)明實(shí)施例中系統(tǒng)的ー實(shí)施例示意圖;圖10是本發(fā)明實(shí)施例中系統(tǒng)的另ー實(shí)施例示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供一種數(shù)據(jù)查詢的方法,可以提高數(shù)據(jù)查詢的實(shí)時性。本發(fā)明實(shí)施例還提供了響應(yīng)的設(shè)備及系統(tǒng)。以下分別進(jìn)行詳細(xì)說明。
本發(fā)明實(shí)施例主要針對在無共享(share nothing)架構(gòu)下,針對同構(gòu)且表間沒有直接關(guān)系的數(shù)據(jù),進(jìn)行分布式數(shù)據(jù)篩選、排序、查詢;以及針對此數(shù)據(jù)環(huán)境下,隨機(jī)選取一列進(jìn)行例如排序、Top N等數(shù)據(jù)查詢操作的實(shí)時性問題。參閱圖1,本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢的方法的一實(shí)施例包括101、獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù),并將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn)。海量數(shù)據(jù)一般存儲在多個執(zhí)行節(jié)點(diǎn)中,要從海量數(shù)據(jù)中查詢Top N數(shù)據(jù)時,用戶通過用戶端輸入查詢?nèi)蝿?wù)后,后臺要有一臺服務(wù)器將所述查詢?nèi)蝿?wù)拆分成多個查詢子任務(wù),子任務(wù)的數(shù)量與執(zhí)行節(jié)點(diǎn)的數(shù)量對應(yīng)。調(diào)度節(jié)點(diǎn)獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù)后,將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn)。102、按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到ー個歸并集合,并指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合。預(yù)置的歸并策略可以為接收執(zhí)行節(jié)點(diǎn)完成所述查詢子任務(wù)后上報的子任務(wù)完成響應(yīng),或者,完成數(shù)據(jù)歸并任務(wù)后上報的歸并任務(wù)完成響應(yīng),當(dāng)上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)數(shù)量時,或者當(dāng)上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)與上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)數(shù)量時,進(jìn)行數(shù)據(jù)歸井。預(yù)設(shè)數(shù)量可以為大于等于2并且小于執(zhí)行節(jié)點(diǎn)數(shù)量的任意數(shù)值。預(yù)置的歸并策略還可以為接收執(zhí)行節(jié)點(diǎn)發(fā)送的歸并申請;當(dāng)發(fā)送所述歸并申請的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)的數(shù)量時,進(jìn)行數(shù)據(jù)歸井。預(yù)設(shè)數(shù)量可以為大于等于2并且小于執(zhí)行節(jié)點(diǎn)數(shù)量的任意數(shù)值。當(dāng)沒有發(fā)生數(shù)據(jù)歸并時可以理解為發(fā)生數(shù)據(jù)歸并的次數(shù)為0次,也可以將未發(fā)生數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)的級別定義為0級。執(zhí)行過一次數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)的級別定義為I級,執(zhí)行過幾次數(shù)據(jù)歸并,該執(zhí)行節(jié)點(diǎn)為幾級。本發(fā)明實(shí)施例中提供的方案,執(zhí)行節(jié)點(diǎn)在加入歸并集合后,如果沒有被指定執(zhí)行數(shù)據(jù)歸并,那么該執(zhí)行節(jié)點(diǎn)就不能再次被劃分到歸并集合了,只有被指定歸并數(shù)據(jù)的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合,而且如果該執(zhí)行節(jié)點(diǎn)在第一個歸并集合中被指定執(zhí)行數(shù)據(jù)歸并,在第二個歸并集合中未被指定執(zhí)行歸并數(shù)據(jù),那么該執(zhí)行節(jié)點(diǎn)就不能再第三次被劃分到歸并集合了。數(shù)據(jù)歸并是指按照要求從所有執(zhí)行節(jié)點(diǎn)查詢的Top N數(shù)據(jù)中,再選擇出TopN數(shù)據(jù)。103、是否獲取到最后ー個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù),當(dāng)是時,執(zhí)行步驟104,當(dāng)否時,執(zhí)行步驟102。數(shù)據(jù)歸并的過程是在執(zhí)行節(jié)點(diǎn)中進(jìn)行的,調(diào)度節(jié)點(diǎn)只需要最后的歸并數(shù)據(jù),因此數(shù)據(jù)歸并的過程需要進(jìn)行多次,直到得到最后的歸并數(shù)據(jù),當(dāng)未獲取最后的歸并數(shù)據(jù)時,需要反復(fù)執(zhí)行步驟102。104、向用戶端返回所述最后的歸并數(shù)據(jù)。 調(diào)度節(jié)點(diǎn)獲得最后的歸并數(shù)據(jù)后,將所述最后的歸并數(shù)據(jù)返回給用戶端,供用戶端顯示。本發(fā)明實(shí)施例采用獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù),并將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);向用戶端返回所述最后的歸并數(shù)據(jù)。與現(xiàn)有技術(shù)中當(dāng)有ー個部分的數(shù)據(jù)讀取緩慢時,就要一直等待這部分?jǐn)?shù)據(jù)相比,本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢的方法,可以提高數(shù)據(jù)查詢的實(shí)時性。可選地,在上述圖I對應(yīng)的實(shí)施例的基礎(chǔ)上,所述按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,具體包括接收執(zhí)行節(jié)點(diǎn)完成所述查詢子任務(wù)后上報的子任務(wù)完成響應(yīng),或者,完成數(shù)據(jù)歸并任務(wù)后上報的歸并任務(wù)完成響應(yīng);當(dāng)上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)數(shù)量時,將上報所述子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合;或者,當(dāng)上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)與上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)數(shù)量時,將所述上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)與所述上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合。本發(fā)明實(shí)施例提供的技術(shù)方案是,執(zhí)行節(jié)點(diǎn)按照調(diào)度節(jié)點(diǎn)的任務(wù),完成相應(yīng)的エ作,完成任務(wù)后,執(zhí)行節(jié)點(diǎn)上報ー個任務(wù)完成響應(yīng),當(dāng)調(diào)度節(jié)點(diǎn)給分配查詢子任務(wù)后,執(zhí)行節(jié)點(diǎn)完成數(shù)據(jù)查詢工作后,會向調(diào)度節(jié)點(diǎn)上報ー個子任務(wù)完成響應(yīng),當(dāng)調(diào)度節(jié)點(diǎn)分配的是數(shù)據(jù)歸并任務(wù)時,執(zhí)行節(jié)點(diǎn)完成歸并的任務(wù)后,會向調(diào)度節(jié)點(diǎn)上報ー個歸并任務(wù)完成響應(yīng),以便調(diào)度節(jié)點(diǎn)繼續(xù)分配其他任務(wù)。可選地,在上述圖I對應(yīng)的實(shí)施例的基礎(chǔ)上,所述按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,具體包括接收執(zhí)行節(jié)點(diǎn)發(fā)送的歸并申請;當(dāng)發(fā)送所述歸并申請的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)的數(shù)量時,將發(fā)送所述數(shù)據(jù)歸并申請的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合。本發(fā)明實(shí)施例提供的技術(shù)方案是,執(zhí)行節(jié)點(diǎn)完成調(diào)度節(jié)點(diǎn)分配的查詢子任務(wù)或者歸并任務(wù)后,主動向調(diào)度節(jié)點(diǎn)發(fā)送歸并申請,調(diào)度節(jié)點(diǎn)在發(fā)送所述歸并申請的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)的數(shù)量時,將發(fā)送所述數(shù)據(jù)歸并申請的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合。
可選地,在上述圖I對應(yīng)的實(shí)施例的基礎(chǔ)上,所述指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),具體包括指定所述歸并集合中的一個執(zhí)行節(jié)點(diǎn)讀取所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),使所述指定的一個執(zhí)行節(jié)點(diǎn)對所述讀取到的數(shù)據(jù)進(jìn)行篩選,得到所述歸并集合中的所有執(zhí)行節(jié)點(diǎn)的歸并數(shù)據(jù)。本發(fā)明實(shí)施例提供的技術(shù)方案是調(diào)度節(jié)點(diǎn)指定歸并集合中的ー個執(zhí)行節(jié)點(diǎn)完成集合內(nèi)所有執(zhí)行節(jié)點(diǎn)查詢到的數(shù)據(jù)或者歸并后的數(shù)據(jù)的歸井。為了便于理解,參閱圖2,下面以ー個具體應(yīng)用場景為例,對本發(fā)明實(shí)施例進(jìn)行詳細(xì)說明例如圖2所示,有6個執(zhí)行節(jié)點(diǎn),分別為執(zhí)行節(jié)點(diǎn)f執(zhí)行節(jié)點(diǎn)6,調(diào)度節(jié)點(diǎn)負(fù)責(zé)管理執(zhí)行節(jié)點(diǎn)。調(diào)度節(jié)點(diǎn)獲取查詢?nèi)蝿?wù)(Top 100)所拆分成的6個查詢子任務(wù)后,將所述6個查 詢子任務(wù)分別分配給執(zhí)行節(jié)點(diǎn)f執(zhí)行節(jié)點(diǎn)6的6個執(zhí)行節(jié)點(diǎn),6個執(zhí)行節(jié)點(diǎn)接收到查詢子任務(wù)后,分別從各自的數(shù)據(jù)庫子表中讀取出Top 100的數(shù)據(jù),每個執(zhí)行節(jié)點(diǎn)讀取數(shù)據(jù)的速度可能不同,每個執(zhí)行節(jié)點(diǎn)完成查詢子任務(wù)后,就可以向調(diào)度節(jié)點(diǎn)發(fā)送子任務(wù)完成響應(yīng),或者,每個執(zhí)行節(jié)點(diǎn)完成查詢子任務(wù)后,向調(diào)度節(jié)點(diǎn)發(fā)送歸并申請。本應(yīng)用場景中以接收到子任務(wù)完成響應(yīng)為例進(jìn)行說明,調(diào)度節(jié)點(diǎn)接收到子任務(wù)完成響應(yīng)的數(shù)量達(dá)到預(yù)定數(shù)量吋,假設(shè)預(yù)定數(shù)量為2,就將發(fā)送子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,如圖2中,將執(zhí)行節(jié)點(diǎn)I、執(zhí)行節(jié)點(diǎn)2劃分到一個歸并集合,將執(zhí)行節(jié)點(diǎn)
3、執(zhí)行節(jié)點(diǎn)4劃分到一個歸并集合,將執(zhí)行節(jié)點(diǎn)5、執(zhí)行節(jié)點(diǎn)6劃分到一個歸并集合,然后執(zhí)行執(zhí)行節(jié)點(diǎn)I執(zhí)行歸并任務(wù),執(zhí)行節(jié)點(diǎn)I讀取執(zhí)行節(jié)點(diǎn)2查詢到的Top 100數(shù)據(jù),與自身查詢到的Top 100數(shù)據(jù)進(jìn)行歸并,得到這兩個執(zhí)行節(jié)點(diǎn)的Top 100數(shù)據(jù)。另外兩個歸并集合中調(diào)度節(jié)點(diǎn)指定的執(zhí)行節(jié)點(diǎn)分別時執(zhí)行節(jié)點(diǎn)3和執(zhí)行節(jié)點(diǎn)5,歸并處理方式與執(zhí)行節(jié)點(diǎn)I所在的歸并集合相同。本實(shí)施中只是舉例,在實(shí)際操作中,調(diào)度節(jié)點(diǎn)根據(jù)各執(zhí)行節(jié)點(diǎn)上報的順序進(jìn)行歸并,并不限于本實(shí)施例中的順序。執(zhí)行節(jié)點(diǎn)1、3、5執(zhí)行完0級歸并任務(wù)后,向調(diào)度節(jié)點(diǎn)發(fā)送歸并任務(wù)完成響應(yīng),調(diào)度節(jié)點(diǎn)將向上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)3和執(zhí)行節(jié)點(diǎn)5劃分到一個歸并集合,并執(zhí)行執(zhí)行節(jié)點(diǎn)5執(zhí)行數(shù)據(jù)歸并,執(zhí)行節(jié)點(diǎn)5讀取執(zhí)行節(jié)點(diǎn)3中的I級歸并數(shù)據(jù),將執(zhí)行節(jié)點(diǎn)3中的I級歸并數(shù)據(jù)與自身的I級歸并數(shù)據(jù)歸并,完成歸并后,向調(diào)度節(jié)點(diǎn)發(fā)送歸并任務(wù)完成響應(yīng),調(diào)度節(jié)點(diǎn)接收到執(zhí)行節(jié)點(diǎn)5上報的歸并任務(wù)完成響應(yīng)后,將與執(zhí)行節(jié)點(diǎn)5數(shù)據(jù)級別最近的執(zhí)行節(jié)點(diǎn)I劃分到一個歸并集合,并指定執(zhí)行節(jié)點(diǎn)I進(jìn)行數(shù)據(jù)歸并,執(zhí)行節(jié)點(diǎn)I讀取執(zhí)行節(jié)點(diǎn)5中的2級歸并數(shù)據(jù),與自身的I級歸并數(shù)據(jù)進(jìn)行歸并,得到最后的歸并數(shù)據(jù),井向調(diào)度節(jié)點(diǎn)發(fā)送歸并任務(wù)完成響應(yīng),調(diào)度節(jié)點(diǎn)識別到已經(jīng)沒有待歸并的數(shù)據(jù),確認(rèn)得到最后的歸并數(shù)據(jù),從執(zhí)行節(jié)點(diǎn)I獲取最后的歸并數(shù)據(jù),返回給用戶端,供用戶端顯示。由上可見,由于進(jìn)行歸并的雙方并非預(yù)先設(shè)定好,而是采用流水線方式在任務(wù)執(zhí)行過程中動態(tài)調(diào)度得到的,這樣可避免預(yù)先設(shè)定歸并雙方可能導(dǎo)致的某些節(jié)點(diǎn)讀取數(shù)據(jù)過慢而使得其它已獲取到數(shù)據(jù)的執(zhí)行節(jié)點(diǎn)無法進(jìn)行歸井。圖2中幾次歸并分別在Node I、Node 3、Node 5、Node 5和Nodel上進(jìn)行,有效的提高了并發(fā)度。參閱圖3A和3B,下面以另ー個具體應(yīng)用場景為了,對本發(fā)明實(shí)施例進(jìn)行詳細(xì)說明圖3A為現(xiàn)有技術(shù)中的非動態(tài)分級歸并的映射/歸并(Map/Reduce)過程參見圖3A,非動態(tài)分級的Map/Reduce開銷包括開銷I :6次map讀盤;開銷2 :6次map結(jié)果集傳輸?shù)街虚g結(jié)果集存儲節(jié)點(diǎn);開銷3 6次中間結(jié)果集存盤;開銷4 6次reduce操作讀取中間結(jié)果集;開銷5 6次中間結(jié)果集傳輸?shù)絩educe節(jié)點(diǎn);
開銷6 :2次reduce中間結(jié)果集網(wǎng)絡(luò)傳輸;開銷7 2次中間結(jié)果集寫磁盤過程;開銷8 中間結(jié)果集讀盤過程;開銷9 :2次reduce中間結(jié)果集網(wǎng)絡(luò)傳輸。查詢開銷=6*Iol (6次map讀盤)+6*Io2 (6次map結(jié)果集傳輸?shù)街虚g結(jié)果集存儲節(jié)點(diǎn))+6*Iol (6次中間結(jié)果集存盤)+6*Iol (6次reduce操作讀取中間結(jié)果集)+6*Io2(6次中間結(jié)果集傳輸?shù)絩educe節(jié)點(diǎn))+2*Io2 (2次reduce中間結(jié)果集網(wǎng)絡(luò)傳輸)+2*Iol(2次中間結(jié)果集寫磁盤過程)+2*Iol (中間結(jié)果集讀盤過程)+2*Io2 (2次reduce中間結(jié)果集網(wǎng)絡(luò)傳輸)??梢源_認(rèn),圖3A中的非動態(tài)分級的Map/Reduce,用于讀盤的開銷為22次,用于網(wǎng)絡(luò)傳輸?shù)拈_銷為16次。參見圖3B,圖3B為本發(fā)明實(shí)施例提供的動態(tài)分級的歸并過程中的開銷包括開銷I :6次map讀盤;開銷2 3次map結(jié)果集傳輸?shù)街虚g結(jié)果集到對應(yīng)存儲節(jié)點(diǎn);開銷3 2次reduce中間結(jié)果集網(wǎng)絡(luò)傳輸;查詢開銷=6*Iol (6次map讀盤)+3*Io2 (3次map結(jié)果集傳輸?shù)街虚g結(jié)果集到對應(yīng)存儲節(jié)點(diǎn))+2*Io2 (2次reduce中間結(jié)果集網(wǎng)絡(luò)傳輸)。可以確認(rèn),圖3B中用于讀盤的開銷為6次,用于網(wǎng)絡(luò)傳輸開銷為5次。從圖3A和圖3B的對比中可以看出,本發(fā)明實(shí)施例提供的歸并方案大大的提高了數(shù)據(jù)查詢的速度。可選地,在圖I對應(yīng)的實(shí)施例的基礎(chǔ)上,所述獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù)之前,還包括接收所述查詢?nèi)蝿?wù),并將所述查詢?nèi)蝿?wù)拆分成多個查詢子任務(wù)。本發(fā)明實(shí)施例提供的查詢?nèi)蝿?wù)拆分工作可以由另外的服務(wù)器完成,也可以由調(diào)度節(jié)點(diǎn)來完成,如果沒有負(fù)責(zé)拆分查詢?nèi)蝿?wù)的服務(wù)器,那么調(diào)度節(jié)點(diǎn)接收到查詢?nèi)蝿?wù)后,將查詢?nèi)蝿?wù)拆分成多個查詢子任務(wù)??蛇x地,在圖I對應(yīng)的實(shí)施例的基礎(chǔ)上,還包括獲取用于翻頁的游標(biāo)信息;向用戶端返回所述用于翻頁的游標(biāo)信息,以使所述最終的歸并數(shù)據(jù)在所述用戶端上分頁展示。用戶端要查詢Top 100或者更多的數(shù)據(jù),不可能在一頁中顯示,需要要分頁來展示,調(diào)度節(jié)點(diǎn)獲取用于翻頁的游標(biāo)信息;向用戶端返回所述用于翻頁的游標(biāo)信息,以使所述最終的歸并數(shù)據(jù)在所述用戶端上分頁展示。參閱圖4,下面以另ー個具體應(yīng)用場景為了,對本發(fā)明實(shí)施例進(jìn)行詳細(xì)說明
下面以ー種TopN翻頁查詢過程為例進(jìn)行介紹201、用戶端(Portal)-〉配置服務(wù)器(CS, Configuration Server)用戶在用戶端界面上選擇數(shù)據(jù)過濾條件,過濾條件如數(shù)據(jù)類型(如原始數(shù)據(jù)、匯總數(shù)據(jù))、網(wǎng)元類型、版本、ー個Moc、時間段、性能指標(biāo)、指標(biāo)和時間等,用戶端向配置服務(wù)器發(fā)送查詢?nèi)蝿?wù),CS對該P(yáng)ortal編號后將其ID與此次查詢?nèi)蝿?wù)ID建立映射關(guān)系。202、配置服務(wù)器向調(diào)度服務(wù)器(Master Server)發(fā)送查詢?nèi)蝿?wù)。
203、配置服務(wù)器向任務(wù)服務(wù)器(TS, Task Server)發(fā)送游標(biāo)。204、調(diào)度服務(wù)器向任務(wù)服務(wù)器發(fā)送拆分任務(wù)。205、任務(wù)服務(wù)器按照任務(wù)拆分策略將查詢?nèi)蝿?wù)拆分為若干個子任務(wù)后,向調(diào)度服務(wù)器發(fā)送拆分成的若干個子任務(wù)。206、調(diào)度服務(wù)器向第一計算服務(wù)器分配查詢子任務(wù)任務(wù)。207、調(diào)度服務(wù)器向第二計算服務(wù)器分配查詢子任務(wù)任務(wù)。208、第一計算服務(wù)器向調(diào)度服務(wù)器發(fā)送子任務(wù)完成響應(yīng)。209、第二計算服務(wù)器向調(diào)度服務(wù)器發(fā)送子任務(wù)完成響應(yīng)。210、調(diào)度服務(wù)器向第一計算服務(wù)器發(fā)送歸并任務(wù)。211、第一計算服務(wù)器讀取第二計算服務(wù)器查詢出的數(shù)據(jù),將第二計算服務(wù)查詢的數(shù)據(jù)與自身查詢的數(shù)據(jù)歸并,歸并后向調(diào)度服務(wù)器發(fā)出歸并任務(wù)完成響應(yīng)。212、調(diào)度服務(wù)器從第一計算服務(wù)器獲取最后的歸并數(shù)據(jù)。213、調(diào)度服務(wù)器將最后的歸并數(shù)據(jù)和分頁游標(biāo)發(fā)送給配置服務(wù)器。214、配置服務(wù)器將最后的歸并數(shù)據(jù)和分頁游標(biāo)發(fā)送給用戶端,供用戶端分頁顯
/Jn o本技術(shù)方案可在流式計算平臺中進(jìn)行數(shù)據(jù)歸并的任務(wù)處理的事件路由過程中得到應(yīng)用。以Yahoo!的流式計算平臺S4為例。在上游基本運(yùn)算單元(PE, ProcessingElemen)處理完事件(event)后向下游PE輸出新的event時,在交流平臺(communicationlayer)中需要做事件路由來選擇接收新event的PE。如果按照純粹的負(fù)載均衡原則來進(jìn)行路由,這些事件將由負(fù)載較輕的用于處理新event的PE捕獲,但這些PE很有可能并沒有保存上游事件處理得到的數(shù)據(jù),也就是說上游PE需要將數(shù)據(jù)傳輸給下游PE,在ニ路歸并的情況下將發(fā)生兩次數(shù)據(jù)傳輸。如果路由器(router)按照動態(tài)分級歸并的原則進(jìn)行事件路由,那么首先它選擇的下游PE將是產(chǎn)生該事件的PE中的ー個,這樣就減少了一次傳輸開銷;其次動態(tài)分級歸并算法會將所有事件均勻地進(jìn)行路由,這樣并行度就得到了保證,提升事件處理的效率。本發(fā)明實(shí)施例提供的服務(wù)器為方法技術(shù)方案中的調(diào)度節(jié)點(diǎn)或者應(yīng)用場景中的調(diào)度服務(wù)器。參閱圖5,本發(fā)明實(shí)施例提供的服務(wù)器的一實(shí)施例包括獲取單元301,用于獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù);分配単元302,用于將所述獲取単元301獲取的每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);劃分單元303,用于在所述分配単元302分配所述每個查詢子任務(wù)后,按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合;指定単元304,用于指定所述劃分単元303劃分后的歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;所述獲取単元301,還用于在所述劃分単元303和所述指定単元304重復(fù)執(zhí)行所述劃分歸并集合和所述指定歸并的步驟后,取最后ー個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);發(fā)送單元305,用于向用戶端返回所述獲取単元301獲取的最后的歸并數(shù)據(jù)。本發(fā)明實(shí)施例中,獲取單元301獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù);分配単元302將所述獲取單元301獲取的每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);劃分單元303在所述分配単元302分配所述每個查詢子任務(wù)后,按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合;指定単元304指定所述劃分単元303劃 分后的歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;所述獲取単元301在所述劃分単元303和所述指定単元304重復(fù)執(zhí)行所述劃分歸并集合和所述指定歸并的步驟后,取最后ー個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);發(fā)送單元305向用戶端返回所述獲取単元301獲取的最后的歸并數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提供的服務(wù)器,可以提高數(shù)據(jù)查詢的實(shí)時性。參閱圖6,在上述圖5對應(yīng)的實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的服務(wù)器的另ー實(shí)施例還包括第一接收單元306,用于接收執(zhí)行節(jié)點(diǎn)完成所述查詢子任務(wù)后上報的子任務(wù)完成響應(yīng),或者,完成數(shù)據(jù)歸并任務(wù)后上報的歸并任務(wù)完成響應(yīng);所述劃分単元303,用于當(dāng)所述第一接收單元306接收到的上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)數(shù)量時,將上報所述子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)劃分到ー個歸并集合;或者,當(dāng)上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)與上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)數(shù)量時,將所述上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)與所述上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合。參閱圖7,在上述圖5對應(yīng)的實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的服務(wù)器的另ー實(shí)施例還包括第二接收單元307,用于接收執(zhí)行節(jié)點(diǎn)發(fā)送的歸并申請;所述劃分単元303,用于當(dāng)所述第二接收單元307接收到的發(fā)送所述歸并申請的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)的數(shù)量時,將發(fā)送所述數(shù)據(jù)歸并申請的執(zhí)行節(jié)點(diǎn)劃分到一個歸并
隹A
ロ O在上述圖5 7對應(yīng)的實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的服務(wù)器的另ー實(shí)施例還包括所述指定単元304,具體用于指定所述歸并集合中的一個執(zhí)行節(jié)點(diǎn)讀取所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),使所述指定的一個執(zhí)行節(jié)點(diǎn)對所述讀取到的數(shù)據(jù)進(jìn)行篩選,得到所述歸并集合中的所有執(zhí)行節(jié)點(diǎn)的歸并數(shù)據(jù)。在上述圖5 7對應(yīng)的實(shí)施例的基礎(chǔ)上,參閱圖8,本發(fā)明實(shí)施例提供的服務(wù)器的另ー實(shí)施例還包括第三接收單元308,用于接收所述查詢?nèi)蝿?wù);拆分單元309,用于將所述第三接收單元308接收到的查詢?nèi)蝿?wù)拆分成多個查詢子任務(wù)。在上述圖5 7對應(yīng)的實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供的服務(wù)器的另ー實(shí)施例還包括所述獲取単元301,還用于獲取用于翻頁的游標(biāo)信息;所述發(fā)送単元305,還用于向用戶端返回所述獲取單元獲取的用于翻頁的游標(biāo)信息,以使所述最終的歸并數(shù)據(jù)在所述用戶端上分頁展示。
以上多個實(shí)施例提供的服務(wù)器,都可以提高數(shù)據(jù)查詢的效率,提高數(shù)據(jù)處理的實(shí)時性。參閱圖9,本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢系統(tǒng)的ー實(shí)施例包括調(diào)度服務(wù)器30、任務(wù)服務(wù)器40、多個執(zhí)行節(jié)點(diǎn)50、用戶端60 ;所述調(diào)度服務(wù)器30,用于從所述任務(wù)服務(wù)器40獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù),并將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的一個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);向用戶端返回所述最后的歸并數(shù)據(jù)。所述任務(wù)服務(wù)器40,用于拆分用戶端發(fā)送的查詢?nèi)蝿?wù)。所述執(zhí)行節(jié)點(diǎn)50,用于按照調(diào)度服務(wù)器30的指示查詢或者歸并數(shù)據(jù)。所述用戶端60,用戶發(fā)送查詢數(shù)據(jù),并在調(diào)度服務(wù)器返回最后的歸并數(shù)據(jù)后,顯示所述最后的歸并數(shù)據(jù)。參閱圖10,本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢系統(tǒng)的ー實(shí)施例包括調(diào)度服務(wù)器30、多個執(zhí)行節(jié)點(diǎn)50、用戶端60 ;所述調(diào)度服務(wù)器30,用于獲取查詢?nèi)蝿?wù)后,將所述查詢?nèi)蝿?wù)拆分成多個查詢子任務(wù),并將所述多個查詢子任務(wù)分配給每個執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);向用戶端返回所述最后的歸并數(shù)據(jù)。所述執(zhí)行節(jié)點(diǎn)50,用于按照調(diào)度服務(wù)器30的指示查詢或者歸并數(shù)據(jù)。所述用戶端60,用戶發(fā)送查詢數(shù)據(jù),并在調(diào)度服務(wù)器返回最后的歸并數(shù)據(jù)后,顯示所述最后的歸并數(shù)據(jù)。本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢系統(tǒng),可以提高數(shù)據(jù)查詢的效率,提高數(shù)據(jù)處理的實(shí)時性。本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于ー計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括只讀存儲器、隨機(jī)存儲器、磁盤或光盤等。以上對本發(fā)明實(shí)施例所提供的數(shù)據(jù)查詢的方法、設(shè)備以及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心 思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種數(shù)據(jù)查詢的方法,其特征在于,包括 獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù),并將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn); 按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合; 重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后的歸并數(shù)據(jù),所述最后的歸并數(shù)據(jù)為最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的; 向用戶端返回所述最后的歸并數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,具體包括 接收執(zhí)行節(jié)點(diǎn)完成所述查詢子任務(wù)后上報的子任務(wù)完成響應(yīng),或者,完成數(shù)據(jù)歸并任務(wù)后上報的歸并任務(wù)完成響應(yīng); 當(dāng)上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)數(shù)量時,將上報所述子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合;或者, 當(dāng)上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)與上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量之和達(dá)到預(yù)設(shè)數(shù)量時,將所述上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)與所述上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,具體包括 接收執(zhí)行節(jié)點(diǎn)發(fā)送的歸并申請; 當(dāng)發(fā)送所述歸并申請的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)的數(shù)量時,將發(fā)送所述數(shù)據(jù)歸并申請的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合。
4.根據(jù)權(quán)利要求r3任意一項(xiàng)所述的方法,其特征在于,所述指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),具體包括 指定所述歸并集合中的一個執(zhí)行節(jié)點(diǎn)讀取所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),使所述指定的一個執(zhí)行節(jié)點(diǎn)對所述讀取到的數(shù)據(jù)進(jìn)行篩選,得到所述歸并集合中的所有執(zhí)行節(jié)點(diǎn)的歸并數(shù)據(jù)。
5.根據(jù)權(quán)利要求r3任意一項(xiàng)所述的方法,其特征在于,所述獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù)之前,還包括 接收所述查詢?nèi)蝿?wù),并將所述查詢?nèi)蝿?wù)拆分成多個查詢子任務(wù)。
6.根據(jù)權(quán)利要求f3任意一項(xiàng)所述的方法,其特征在于,還包括 獲取用于翻頁的游標(biāo)信息; 向用戶端返回所述用于翻頁的游標(biāo)信息,以使所述最終的歸并數(shù)據(jù)在所述用戶端上分頁展示。
7.一種服務(wù)器,其特征在于,包括 獲取單元,用于獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù);分配単元,用于將所述獲取單元獲取的每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);劃分單元,用于在所述分配単元分配所述每個查詢子任務(wù)后,按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合; 指定単元,用于指定所述劃分單元劃分后的歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合; 所述獲取単元,還用于在所述劃分単元和所述指定単元重復(fù)執(zhí)行所述劃分歸并集合和所述指定歸并的步驟后,獲取最后的歸并數(shù)據(jù),所述最后的歸并數(shù)據(jù)為最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的; 發(fā)送單元,用于向用戶端返回所述獲取單元獲取的最后的歸并數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,還包括 第一接收單元,用于接收執(zhí)行節(jié)點(diǎn)完成所述查詢子任務(wù)后上報的子任務(wù)完成響應(yīng),或者,完成數(shù)據(jù)歸并任務(wù)后上報的歸并任務(wù)完成響應(yīng); 所述劃分単元,用于當(dāng)所述第一接收單元接收到的上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)數(shù)量時,將上報所述子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合;或者,當(dāng)上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)與上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)的數(shù)量之和達(dá)到預(yù)設(shè)數(shù)量時,將所述上報子任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)與所述上報歸并任務(wù)完成響應(yīng)的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合。
9.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,還包括 第二接收單元,用于接收執(zhí)行節(jié)點(diǎn)發(fā)送的歸并申請; 所述劃分単元,用于當(dāng)所述第二接收單元接收到的發(fā)送所述歸并申請的執(zhí)行節(jié)點(diǎn)的數(shù)量達(dá)到預(yù)設(shè)的數(shù)量時,將發(fā)送所述數(shù)據(jù)歸并申請的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合。
10.根據(jù)權(quán)利要求7 9任意一項(xiàng)所述的服務(wù)器,其特征在于,還包括 所述指定単元,具體用于指定所述歸并集合中的一個執(zhí)行節(jié)點(diǎn)讀取所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),使所述指定的一個執(zhí)行節(jié)點(diǎn)對所述讀取到的數(shù)據(jù)進(jìn)行篩選,得到所述歸并集合中的所有執(zhí)行節(jié)點(diǎn)的歸并數(shù)據(jù)。
11.根據(jù)權(quán)利要求7 9任意一項(xiàng)所述的服務(wù)器,其特征在于,還包括 第三接收單元,用于接收所述查詢?nèi)蝿?wù); 拆分單元,用于將所述第三接收單元接收到的查詢?nèi)蝿?wù)拆分成多個查詢子任務(wù)。
12.根據(jù)權(quán)利要求7 9任意一項(xiàng)所述的服務(wù)器,其特征在于,還包括 所述獲取単元,還用于獲取用于翻頁的游標(biāo)信息; 所述發(fā)送単元,還用于向用戶端返回所述獲取單元獲取的用于翻頁的游標(biāo)信息,以使所述最終的歸并數(shù)據(jù)在所述用戶端上分頁展示。
13.ー種數(shù)據(jù)查詢系統(tǒng),其特征在于,包括調(diào)度服務(wù)器、任務(wù)服務(wù)器、多個執(zhí)行節(jié)點(diǎn)、用戶端; 所述調(diào)度服務(wù)器從所述任務(wù)服務(wù)器獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù),并將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的ー個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);向用戶端返回所述最后的歸并數(shù)據(jù)。
14.ー種數(shù)據(jù)查詢系統(tǒng),其特征在于,包括調(diào)度服務(wù)器、多個執(zhí)行節(jié)點(diǎn)、用戶端; 所述調(diào)度服務(wù)器獲取查詢?nèi)蝿?wù)后,將所述查詢?nèi)蝿?wù)拆分成多個查詢子任務(wù),并將所述多個查詢子任務(wù)分配給每個執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的一個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取最后的歸并數(shù)據(jù),所述最后的歸并數(shù)據(jù)為最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的;向所述用戶端返回所述最后的歸并數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)查詢的方法,獲取查詢?nèi)蝿?wù)所拆分成的多個查詢子任務(wù),并將每個查詢子任務(wù)分別分配給不同的執(zhí)行節(jié)點(diǎn);按照預(yù)置的歸并策略,將發(fā)生數(shù)據(jù)歸并的次數(shù)最近的執(zhí)行節(jié)點(diǎn)劃分到一個歸并集合,并指定所述歸并集合中的一個執(zhí)行節(jié)點(diǎn)歸并所述歸并集合中的其他執(zhí)行節(jié)點(diǎn)查詢到的或者歸并后的數(shù)據(jù),其中,每個歸并集合中只有被指定執(zhí)行數(shù)據(jù)歸并的執(zhí)行節(jié)點(diǎn)才能再次被劃分到歸并集合;重復(fù)執(zhí)行所述劃分歸并集合和指定歸并的步驟,直到獲取到最后一個歸并集合中指定的執(zhí)行節(jié)點(diǎn)執(zhí)行所述歸并步驟得到的最后的歸并數(shù)據(jù);向用戶端返回所述最后的歸并數(shù)據(jù)??梢蕴岣邤?shù)據(jù)查詢的實(shí)時性。
文檔編號G06F17/30GK102779183SQ20121022524
公開日2012年11月14日 申請日期2012年7月2日 優(yōu)先權(quán)日2012年7月2日
發(fā)明者嚴(yán)華兵, 劉彬, 唐棠, 李林, 段翰聰 申請人:華為技術(shù)有限公司