數(shù)據(jù)的查詢方法和查詢裝置制造方法【專利摘要】本發(fā)明公開了一種數(shù)據(jù)的查詢方法和查詢裝置,其中,該查詢方法包括:對預(yù)先接收到的至少一個數(shù)據(jù)查詢語句進行整合,得到預(yù)查詢語句;在預(yù)查詢時機到達的情況下,執(zhí)行預(yù)查詢語句,得到預(yù)查詢結(jié)果;在接收到當(dāng)前數(shù)據(jù)查詢語句的情況下,執(zhí)行當(dāng)前數(shù)據(jù)查詢語句并在預(yù)查詢結(jié)果中進行查詢。根據(jù)本發(fā)明的技術(shù)方案,通過整合預(yù)先接收到的數(shù)據(jù)查詢語句,得到預(yù)查詢語句,并在預(yù)查詢時機到達的情況下,執(zhí)行該預(yù)查詢語句,得到預(yù)查詢結(jié)果,接收到新的類似的查詢語句時,優(yōu)先從預(yù)查詢結(jié)果中進行查詢,能夠?qū)τ脩粜袨檫M行預(yù)測,很大程度上提高數(shù)據(jù)查詢的速度。【專利說明】數(shù)據(jù)的查詢方法和查詢裝置【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及信息【
技術(shù)領(lǐng)域:
】,并且特別地,涉及一種數(shù)據(jù)的查詢方法和查詢裝置?!?br>背景技術(shù):
】[0002]大數(shù)據(jù)是繼云計算、物聯(lián)網(wǎng)之后信息【
技術(shù)領(lǐng)域:
】的又一次技術(shù)變革,大數(shù)據(jù)有四個典型的特征,即4V特點:Variety(多樣性)、Volume(體量)^Velocity(速度)和Value(價值)。由于數(shù)據(jù)量巨大,以至于通過現(xiàn)有技術(shù)很難在合理時間內(nèi)達到對用戶需要的數(shù)據(jù)進行擷取、管理、或處理,無法滿足實時性的要求,以MapReduce(—種編程模型,用于大于ITB的大規(guī)模數(shù)據(jù)集的并行運算)+Hive(Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,簡稱SQL),查詢功能,可以將SQL語句轉(zhuǎn)換為MapReduce任務(wù)進行運行)為例,執(zhí)行一個查詢?nèi)蝿?wù)常常需要數(shù)分鐘甚至數(shù)小時,而時間對于決策者是至關(guān)重要的,比如在金融市場,幾分鐘就可能讓一個小公司破產(chǎn),因此,縮短響應(yīng)時間是大數(shù)據(jù)領(lǐng)域的迫切需求。[0003]當(dāng)前的大數(shù)據(jù)處理領(lǐng)域,開源的Hadoop(—種能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的軟件框架)生態(tài)系統(tǒng)是最常用的技術(shù),其中最常用的是MapReduce+Hive的處理框架,然而Hive的執(zhí)行速度很慢,因為Hive必須通過MapReduce來訪問HDFS(HadoopDistributedFileSystem,—種分布式文件系統(tǒng))上的數(shù)據(jù),而MapReduce任務(wù)的啟動是比較耗時的,Cloudera公司根據(jù)Google的Dremel論文,開發(fā)了一種開源版的大數(shù)據(jù)處理系統(tǒng)Impala,查詢速度比Hive有了一定程度的提高,但是提速效果并不明顯,且仍然無法滿足實時性的要求。[0004]目前,許多大數(shù)據(jù)處理系統(tǒng)采用了結(jié)果保留的技術(shù),就是在一個任務(wù)執(zhí)行完后,將執(zhí)行結(jié)果保存起來,如果下次有相同的任務(wù),可以不用查詢,直接將之前保存的執(zhí)行結(jié)果返回,這種方法在一定程度上加快了執(zhí)行速度,但它是一種被動的方法,不會主動預(yù)測用戶的行為,對于新任務(wù),提速效果不明顯。[0005]針對相關(guān)技術(shù)中,無法預(yù)測用戶行為、對大數(shù)據(jù)執(zhí)行新的查詢?nèi)蝿?wù)速度慢的問題,目前尚未提出有效的解決方案?!?br/>發(fā)明內(nèi)容】[0006]針對相關(guān)技術(shù)中無法預(yù)測用戶行為、對大數(shù)據(jù)執(zhí)行新的查詢?nèi)蝿?wù)速度慢的問題,本發(fā)明提出一種數(shù)據(jù)的查詢方法和查詢裝置,能夠?qū)τ脩粜袨檫M行預(yù)測,很大程度上提高數(shù)據(jù)查詢速度。[0007]本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:[0008]根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)的查詢方法,該查詢方法包括:[0009]對預(yù)先接收到的至少一個數(shù)據(jù)查詢語句進行整合,得到預(yù)查詢語句;[0010]在預(yù)查詢時機到達的情況下,執(zhí)行預(yù)查詢語句,得到預(yù)查詢結(jié)果;[0011]在接收到當(dāng)前數(shù)據(jù)查詢語句的情況下,執(zhí)行當(dāng)前數(shù)據(jù)查詢語句并在預(yù)查詢結(jié)果中進行查詢。[0012]其中,對預(yù)先接收到的至少一個數(shù)據(jù)查詢語句進行整合包括以下至少之一:[0013]對多個數(shù)據(jù)查詢語句的查詢參數(shù)進行合并、對至少一個數(shù)據(jù)查詢語句的查詢參數(shù)進行刪除、對至少一個數(shù)據(jù)查詢語句的查詢參數(shù)進行擴展。[0014]此外,執(zhí)行預(yù)查詢語句之前,進一步包括:[0015]確定預(yù)先接收到的至少一個數(shù)據(jù)查詢語句中每個數(shù)據(jù)查詢語句被接收到的時機,得到至少一個數(shù)據(jù)查詢語句被接收到的時機的分布規(guī)律;[0016]根據(jù)分布規(guī)律確定得到的預(yù)查詢語句的預(yù)查詢時機。[0017]其中,進行整合的至少一個數(shù)據(jù)查詢語句滿足以下條件:預(yù)先接收到的多個數(shù)據(jù)查詢語句達到預(yù)定數(shù)量、且該多個數(shù)據(jù)查詢語句的查詢參數(shù)彼此相符。[0018]其中,查詢參數(shù)彼此相符是指:多個數(shù)據(jù)查詢語句具有相同的數(shù)據(jù)查詢區(qū)域、和/或要查詢的數(shù)據(jù)類型。[0019]此外,執(zhí)行當(dāng)前數(shù)據(jù)查詢語句并在預(yù)查詢結(jié)果中進行查詢之前,該查詢方法進一步包括:[0020]判斷當(dāng)前數(shù)據(jù)查詢語句的數(shù)據(jù)查詢范圍是否超出預(yù)查詢語句的數(shù)據(jù)查詢范圍;[0021]在判斷結(jié)果為否的情況下,執(zhí)行數(shù)據(jù)查詢語句并在預(yù)查詢結(jié)果中進行查詢。[0022]并且,在當(dāng)前數(shù)據(jù)查詢語句的數(shù)據(jù)查詢范圍超出預(yù)查詢語句的數(shù)據(jù)查詢范圍的情況下,根據(jù)當(dāng)前數(shù)據(jù)查詢語句對預(yù)查詢語句進行更新。[0023]此外,更新了預(yù)查詢語句之后,該查詢方法進一步包括:[0024]在下一預(yù)查詢時機到達的情況下,執(zhí)行更新后的預(yù)查詢語句得到查詢結(jié)果,并用該查詢結(jié)果更新預(yù)查詢結(jié)果。[0025]此外,該查詢方法進一步包括:[0026]對預(yù)查詢結(jié)果、和/或預(yù)查詢語句設(shè)置生存時間。[0027]根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)的查詢裝置,該查詢裝置包括:[0028]獲得模塊,用于對預(yù)先接收到的至少一個數(shù)據(jù)查詢語句進行整合,得到預(yù)查詢語句;[0029]執(zhí)行模塊,用于在預(yù)查詢時機到達的情況下,執(zhí)行預(yù)查詢語句,得到預(yù)查詢結(jié)果;[0030]查詢模塊,用于在接收到當(dāng)前數(shù)據(jù)查詢語句的情況下,執(zhí)行數(shù)據(jù)查詢語句并在預(yù)查詢結(jié)果中進行查詢。[0031]本發(fā)明通過整合預(yù)先接收到的數(shù)據(jù)查詢語句得到預(yù)查詢語句,執(zhí)行該預(yù)查詢語句得到預(yù)查詢結(jié)果,在接收到新的數(shù)據(jù)查詢語句時,執(zhí)行該新的數(shù)據(jù)查詢語句并優(yōu)先在預(yù)查詢結(jié)果中查詢,能夠?qū)崿F(xiàn)用戶行為進行預(yù)測,在很多情況下,大大縮短用戶進行數(shù)據(jù)查詢的時間?!緦@綀D】【附圖說明】[0032]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0033]圖1是根據(jù)本發(fā)明實施例的數(shù)據(jù)的查詢方法流程圖;[0034]圖2是根據(jù)本發(fā)明一個實施例的數(shù)據(jù)查詢系統(tǒng)的整體結(jié)構(gòu)圖;[0035]圖3是根據(jù)本發(fā)明實施例的數(shù)據(jù)的查詢裝置框圖?!揪唧w實施方式】[0036]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。[0037]根據(jù)本發(fā)明的實施例,提供了一種數(shù)據(jù)的查詢方法。[0038]如圖1所示,該查詢方法包括:[0039]步驟S101,對預(yù)先接收到的至少一個數(shù)據(jù)查詢語句進行整合,得到預(yù)查詢語句;[0040]步驟S103,在預(yù)查詢時機到達的情況下,執(zhí)行預(yù)查詢語句,得到預(yù)查詢結(jié)果;[0041]步驟S105,在接收到當(dāng)前數(shù)據(jù)查詢語句的情況下,執(zhí)行當(dāng)前數(shù)據(jù)查詢語句并在預(yù)查詢結(jié)果中進行查詢。[0042]其中,對預(yù)先接收到的數(shù)據(jù)查詢語句進行整合的方式可以是對多個數(shù)據(jù)查詢語句的查詢參數(shù)進行合并、或者對至少一個數(shù)據(jù)查詢語句的查詢參數(shù)進行刪除、或者對至少一個數(shù)據(jù)查詢語句的查詢參數(shù)進行擴展、或者以上三種整合方式的任意組合。[0043]在一個實施例中,實現(xiàn)本發(fā)明技術(shù)方案的數(shù)據(jù)查詢系統(tǒng)的整體結(jié)構(gòu)如圖2所示,現(xiàn)有的數(shù)據(jù)查詢系統(tǒng)(比如XData系統(tǒng))只有客戶端應(yīng)用和大數(shù)據(jù)處理平臺兩部分,用戶通過客戶端應(yīng)用向大數(shù)據(jù)處理平臺提交數(shù)據(jù)查詢?nèi)蝿?wù),大數(shù)據(jù)處理平臺接收到該任務(wù)以后開始根據(jù)該任務(wù)進行數(shù)據(jù)查詢,并將查詢結(jié)果返回給客戶端應(yīng)用。[0044]本實施例是在現(xiàn)有的數(shù)據(jù)查詢系統(tǒng)基礎(chǔ)上增加了三個模塊:命令收集分析模塊、后臺任務(wù)管理模塊、以及預(yù)執(zhí)行結(jié)果保存模塊。[0045]其中,命令收集分析模塊用于收集和分析客戶端應(yīng)用提交的任務(wù),客戶端應(yīng)用提交的每一個任務(wù)在發(fā)給大數(shù)據(jù)處理平臺的同時還會發(fā)給命令收集分析模塊,命令收集分析模塊在收到一條命令以后,會對該命令進行分析,獲得該命令的處理對象、操作類型等信息,同時生成一個預(yù)處理任務(wù),并把這個預(yù)處理任務(wù)發(fā)給后臺任務(wù)管理模塊,其中,該預(yù)處理任務(wù)可以包括一條大數(shù)據(jù)處理平臺可以執(zhí)行的命令(比如SQL命令),以及執(zhí)行時間,或者在其他實施例中,該預(yù)處理任務(wù)也可以包括該命令的執(zhí)行的時間周期,比如每天執(zhí)行一次,或每周執(zhí)行一次等。[0046]例如,每個SQL語句都包含一個from子句,表示查詢的對象,通常情況下,依據(jù)from子句,對SQL語句進行分組(當(dāng)然,在一些特殊情況下,也可以根據(jù)其他子句對SQL語句進行分組),也就是說,擁有相同的查詢對象的SQL語句全部放在同一個分組中,在同一個分組中,再根據(jù)SQL的select子句進行劃分,比如把含有統(tǒng)計函數(shù)(比如sum,count,avg等)的語句放在同一個子分組中,不包含統(tǒng)計函數(shù)的語句放在另一個子分組中。當(dāng)某個分組的任意一個分組保存的SQL語句達到我們預(yù)先設(shè)定的值(比如3)以后,就開始對這個分組進行分析,如果該分組不包含統(tǒng)計函數(shù),則提取該分組中所有SQL語句的select字段作為預(yù)處理語句的select字段,所有SQL語句的where子句取或作為預(yù)處理語句的where子句。比如,一種情況下,有如下三條語句:[0047]Selecta,bfromtabIelwherea〈10;[0048]Selectb,cfromtabIelwhereb〈10;[0049]Selecta,c,efromtabIelwherec>5;[0050]根據(jù)這三條語句生成的預(yù)處理語句是:[0051]Selecta,b,c,efromtabIelwherea<10orb<10orc>5;[0052]此外,在另一種情況下,以上三條語句中的至少一條的where子句中包括多個參數(shù),例如第一條語句為:Selecta,bfromtabIelwherea〈10,a>5;此時,可以將where子句中的參數(shù)刪除其中任意一個之后,再將該三個語句進行合并,得到預(yù)處理語句,比如:[0053]經(jīng)過刪除第一條語句中的a〈10的參數(shù),得到處理后的語句為[0054]Selecta,bfromtabIelwherea>5;[0055]Selectb,cfromtabIelwhereb〈10;[0056]Selecta,c,efromtabIelwherec>5;[0057]根據(jù)這三條語句生成的預(yù)處理語句是:[0058]Selecta,b,c,efromtabIelwherea>5orb<10orc>5;或者,[0059]將第一條語句中的a>5的參數(shù),得到處理后的語句為[0060]Selecta,bfromtabIelwherea〈10;[0061]Selectb,cfromtabIelwhereb〈10;[0062]Selecta,c,efromtabIelwherec>5;[0063]根據(jù)這三條語句生成的預(yù)處理語句是:[0064]Selecta,b,c,efromtabIelwherea<10orb<10orc>5;[0065]此時,執(zhí)行以上任意一條預(yù)處理語句或者同時執(zhí)行以上兩條預(yù)處理語句所得到的預(yù)處理結(jié)果,不僅包含了原始三個語句的執(zhí)行結(jié)果,還擴大了預(yù)處理結(jié)果所包含的數(shù)據(jù)范圍,同樣,對于在其他語句包括多個參數(shù)的情況,均可以采用相類似的處理方式。[0066]此外,如果有某一條完全一樣的語句重復(fù)出現(xiàn)了多次,那么可以單獨為其生成一條預(yù)處理語句,不用和其他語句合并。[0067]此外,執(zhí)行預(yù)查詢語句之前,確定預(yù)先接收到的至少一個數(shù)據(jù)查詢語句中每個數(shù)據(jù)查詢語句被接收到的時機,得到數(shù)據(jù)查詢語句被接收到的時機的分布規(guī)律;[0068]根據(jù)分布規(guī)律確定得到的預(yù)查詢語句的預(yù)查詢時機。[0069]在一個實施例中,得到預(yù)查詢語句以后,還要確定其預(yù)查詢時間。例如,可以根據(jù)一個分組中所有語句的平均出現(xiàn)間隔確定預(yù)查詢時間,假設(shè)該分組中3條語句分別在一個月的I號、4號、7號出現(xiàn),那么,可以把預(yù)查詢時間的周期設(shè)置為3天,執(zhí)行日期設(shè)置為從9號開始,也就是說,預(yù)計與該分組中的語句相似的語句會在10號再次出現(xiàn),所以在9號執(zhí)行該預(yù)查詢語句,得到預(yù)查詢結(jié)果,9號即為我們所確定的該預(yù)查詢語句的預(yù)查詢時間,并且,如果后來接收到的與該分組中的語句具有相同或者相符的語句的時間規(guī)律沒有發(fā)生變化,則可以繼續(xù)根據(jù)該時間周期執(zhí)行該預(yù)查詢語句,如果該時間規(guī)律發(fā)生變化,則根據(jù)新的時間規(guī)律重新確定預(yù)查詢時間、或者時間周期。[0070]此外,在生成了預(yù)查詢語句和預(yù)查詢時間以后,命令收集分析模塊會把該預(yù)查詢語句發(fā)送給后臺任務(wù)管理模塊,后臺任務(wù)管理模塊在收到預(yù)查詢語句后,會把該語句添加到任務(wù)列表中,同時,會定期輪詢整個列表,根據(jù)預(yù)查詢時間和大數(shù)據(jù)處理平臺當(dāng)前的繁忙程度提交任務(wù),并且,執(zhí)行完一條預(yù)查詢語句后,結(jié)果會保存在預(yù)執(zhí)行結(jié)果保存模塊中,并且,任務(wù)提交會發(fā)生在大數(shù)據(jù)處理平臺相對比較空閑的時候,不會影響正常任務(wù)的響應(yīng)時間。[0071]當(dāng)用戶向處理平臺提交一個任務(wù)后,處理平臺會先查看預(yù)執(zhí)行結(jié)果保存模塊中保存的預(yù)執(zhí)行結(jié)果,如果有相關(guān)結(jié)果,就直接返回;在有些情況下,如果在預(yù)執(zhí)行結(jié)果中,不包括該任務(wù)對應(yīng)的全部結(jié)果,則按照傳統(tǒng)的查詢方法進行查詢,而在有些情況下,如果有部分結(jié)果,則把部分結(jié)果取回來,再進行剩余的查詢,例如:如果接收到的查詢語句對應(yīng)的查詢?nèi)蝿?wù)是查詢9月7號到9月12號之間被訪問過的視頻數(shù)據(jù),而經(jīng)預(yù)執(zhí)行結(jié)果保存模塊中僅保存有9月7號到9月10號之間被訪問過的視頻數(shù)據(jù),此時,會通過生成一條新的查詢語句,用于查詢9月11號到9月12號之間被訪問過的視頻數(shù)據(jù),通過這種方式,在很多容易獲知剩余查詢?nèi)蝿?wù)的情況下,能夠大大縮短數(shù)據(jù)查詢時間。[0072]并且,進行整合的數(shù)據(jù)查詢語句滿足以下條件:預(yù)先接收到的多個數(shù)據(jù)查詢語句達到預(yù)定數(shù)量、且該多個數(shù)據(jù)查詢語句的查詢參數(shù)彼此相符。[0073]例如,命令收集分析模塊在收到一條命令以后,首先會把這條命令保存起來,在同類型的命令達到一定數(shù)量之后,才開始對命令進行分析。[0074]并且,多個數(shù)據(jù)查詢語句的查詢參數(shù)彼此相符是指:多個數(shù)據(jù)查詢語句具有相同的數(shù)據(jù)查詢區(qū)域、和/或要查詢的數(shù)據(jù)類型。[0075]例如,在一個實施例中,接收到的三個語句為:[0076]Selecta,bfromtablelwherea〈10;[0077]Selectb,cfromtablelwhereb〈10;[0078]Selecta,c,efromtablelwherec>5;[0079]則該三個語句具有相同的數(shù)據(jù)查詢區(qū)域tablel,以及滿足某些特定條件的具有相同類型的數(shù)據(jù)a、b、C、e,則將這三個語句分為一組,而由該組語句得到的預(yù)查詢語句可以是:Selecta,b,c,efromtablelwherea〈10orb〈10orc>5;[0080]同樣,在另一個實施例中,接收到的三個語句為:[0081]SelectvideoAfromtable2;[0082]SelectvideoBfromtable2;[0083]SelectvideoCfromtable2;[0084]此時,這三個語句同樣具有相同的數(shù)據(jù)查詢區(qū)域table2,以及具有相同類型的數(shù)據(jù)videoA、videoB、videoC,則將這三個語句分為一組,而由該組語句得到的預(yù)查詢語句可以是:SelectvideoA,videoB,videoCfromtable2;[0085]容易理解,對于接收到的語句進行的不同分組規(guī)則,所得到的分組結(jié)果也不相同,進而,所得到的預(yù)查詢語句也可能不同,也就是說,在使用本方法對查詢數(shù)據(jù)的過程中,用戶可以根據(jù)自身需求,確定對查詢語句的分組規(guī)則,不限于一種規(guī)則,具有很高的靈活性。[0086]此外,執(zhí)行當(dāng)前數(shù)據(jù)查詢語句并在預(yù)查詢結(jié)果中進行查詢之前,判斷當(dāng)前數(shù)據(jù)查詢語句的數(shù)據(jù)查詢范圍是否超出預(yù)查詢語句的數(shù)據(jù)查詢范圍;[0087]在判斷結(jié)果為否的情況下,執(zhí)行數(shù)據(jù)查詢語句并在預(yù)查詢結(jié)果中進行查詢。[0088]例如,如果得到的預(yù)查詢語句可能不能完全對應(yīng)某條SQL語句,比如字段不同或過濾條件不同等,這樣,該條SQL語句不能直接得到返回結(jié)果,但是,只要該SQL語句的查詢范圍沒有超出預(yù)處理語句的查詢范圍,就可以在預(yù)處理結(jié)果中集中查詢,大大提高響應(yīng)速度,因為原始數(shù)據(jù)量已經(jīng)減少了很多,而對兩條或者多條查詢語句的查詢范圍,是相對容易實現(xiàn)的。[0089]此外,在當(dāng)前數(shù)據(jù)查詢語句的數(shù)據(jù)查詢范圍超出預(yù)查詢語句的數(shù)據(jù)查詢范圍的情況下,按照傳統(tǒng)的查詢方法執(zhí)行當(dāng)前數(shù)據(jù)查詢語句,并返回查詢結(jié)果,同時,根據(jù)當(dāng)前數(shù)據(jù)查詢語句對預(yù)查詢語句進行更新。[0090]并且,更新了預(yù)查詢語句之后,在下一預(yù)查詢時機到達時,執(zhí)行更新后的預(yù)查詢語句得到查詢結(jié)果,并用該查詢結(jié)果更新預(yù)查詢結(jié)果。[0091]其中,下一預(yù)查詢時機的確定方法與上述預(yù)查詢時機的確定方法相類似,根據(jù)查詢語句的接收時間的規(guī)律得到。[0092]例如,當(dāng)前預(yù)查詢語句為:Selecta,b,c,efromtablelwherea<10orb<10orc>5;而接收到的查詢語句為Selecta,bfromtablelwherea<10orb〈10orc>3;此時,該查詢語句所對應(yīng)的查詢數(shù)據(jù)查詢范圍已經(jīng)超出當(dāng)前的預(yù)查詢語句的數(shù)據(jù)查詢范圍,則在應(yīng)該傳統(tǒng)的查詢方法得到查詢結(jié)果的同時,將當(dāng)前的預(yù)查詢語句更新為Selecta,b,c,efromtablelwherea〈10orb<10orc>3;并根據(jù)與該更新后的預(yù)查詢語句對應(yīng)的預(yù)查詢時間執(zhí)行該更新后的預(yù)查詢語句,并用該執(zhí)行結(jié)果更新當(dāng)前的預(yù)執(zhí)行結(jié)果。[0093]此外,預(yù)執(zhí)行結(jié)果保存模塊還可以保存每個結(jié)果的訪問命中次數(shù)或者訪問時間信息,并以預(yù)定周期把這些信息反饋給后臺任務(wù)管理模塊,后臺任務(wù)管理模塊會根據(jù)反饋信息調(diào)整提交任務(wù)的時間,可以大大提高執(zhí)行效率,并且,后臺任務(wù)管理模塊也可以根據(jù)接收到的反饋信息調(diào)整預(yù)執(zhí)行語句的執(zhí)行時間,對預(yù)執(zhí)行結(jié)果進行實時更新。[0094]此外,還對預(yù)查詢結(jié)果、和/或預(yù)查詢語句設(shè)置生存時間。[0095]例如,在一個實施例中,命令收集分析模塊保存用戶的查詢語句,后臺任務(wù)管理模塊保存預(yù)查詢語句,預(yù)查詢結(jié)果也保存在相應(yīng)的模塊中,可以設(shè)置保存時間,比如只保存一個月以內(nèi)的信息,如果在一個月時間內(nèi),某些預(yù)查詢語句或者預(yù)查詢結(jié)果沒有被訪問,則將其自動刪除,避免過度占用存儲空間。[0096]此外,在另一個實施例中,可以將預(yù)查詢結(jié)果的生存時間定義為一預(yù)查詢時機結(jié)束之后的某個時間長度,比如說,確定某個預(yù)查詢語句的預(yù)查詢時機為每天晚上7點,而用于生成該預(yù)查詢語句的查詢語句被接收到的時間都分布于每天晚上的8點到10點之間,那么,在每天晚上的11點將該預(yù)查詢語句的預(yù)查詢結(jié)果刪除,并在下一預(yù)查詢時機到達時,重新執(zhí)行該預(yù)查詢語句,重新生成預(yù)查詢結(jié)果,通過此種方案,不僅能夠盡量避免過度占用存儲空間,還能很大程度上保證預(yù)查詢結(jié)果的實時性,例如,在下一預(yù)查詢時機到達之前,可能整個數(shù)據(jù)庫的數(shù)據(jù)已經(jīng)發(fā)生變化,所以,即使是同一預(yù)查詢語句所對應(yīng)的預(yù)查詢結(jié)果也可能會發(fā)生變化。[0097]根據(jù)本發(fā)明的實施例,還提供了一種數(shù)據(jù)的查詢裝置。[0098]如圖3所示,該查詢裝置包括:[0099]獲得模塊31,用于對預(yù)先接收到的至少一個數(shù)據(jù)查詢語句進行整合,得到預(yù)查詢語句;[0100]執(zhí)行模塊32,用于在預(yù)查詢時機到達的情況下,執(zhí)行預(yù)查詢語句,得到預(yù)查詢結(jié)果;[0101]查詢模塊33,用于在接收到當(dāng)前數(shù)據(jù)查詢語句的情況下,執(zhí)行數(shù)據(jù)查詢語句并在預(yù)查詢結(jié)果中進行查詢。[0102]通過以上描述不難看出,應(yīng)用本發(fā)明的技術(shù)方案提供了數(shù)據(jù)查詢方法和查詢裝置,并借鑒HPC(高性能計算)領(lǐng)域中數(shù)據(jù)訪問模式的概念,能夠預(yù)測用戶需求,提前進行數(shù)據(jù)查詢,可以節(jié)省大量查詢時間。其中,數(shù)據(jù)訪問模式是指一個應(yīng)用對于數(shù)據(jù)的讀寫特點,比如,某個應(yīng)用可能從某個位置開始讀取文件,每次讀取64k,然后跳過之后的64k再讀后面的64k,如此重復(fù),在獲得這些信息后,可以重新組織文件,把應(yīng)用需要的內(nèi)容提取到一個連續(xù)的文件中,使磁盤讀寫變成連續(xù)訪問,提高讀寫速度。相應(yīng)的,本發(fā)明在分析應(yīng)用特點的基礎(chǔ)上,提前進行一些數(shù)據(jù)查詢,并把結(jié)果保存,用來提高大數(shù)據(jù)分析查詢的速度。[0103]此外,本發(fā)明可以在基本不引入額外時間開銷的情況下提高大數(shù)據(jù)處理平臺的訪問速度,并且,本方法不針對特定的平臺,具有通用性,且通過在現(xiàn)有的數(shù)據(jù)查詢系統(tǒng)中增加相應(yīng)模塊的接口,即可將新增的功能模塊添加進來,實現(xiàn)難度不大,易于部署和修改。在充分了解了應(yīng)用的特點以后,可以根據(jù)該應(yīng)用的特點設(shè)置預(yù)處理語句,得到預(yù)處理結(jié)果,可以極大的提高大數(shù)據(jù)處理的速度,在一些情況下可以實現(xiàn)秒級實時響應(yīng),對于重復(fù)性的復(fù)雜的數(shù)據(jù)挖掘和批量處理,更能發(fā)揮該方法的優(yōu)勢。[0104]在大數(shù)據(jù)領(lǐng)域,目前查詢速度是一個非常難以解決的問題,所以相對于所能達到的技術(shù)效果,使用本方法所帶來的開銷基本可以忽略。[0105]本方法自動分析應(yīng)用于大數(shù)據(jù)處理平臺的交互,得到應(yīng)用的特點。如果用戶的應(yīng)用較為單一,且用戶對自己的應(yīng)用特點非常了解的話,可以由用戶直接指明應(yīng)用的特點,不使用本方法的收集和分析工具,也能達到同樣或更好的提速效果。[0106]綜上所述,借助于本發(fā)明的上述技術(shù)方案,通過整合預(yù)先接收到的數(shù)據(jù)查詢語句,得到預(yù)查詢語句,并在預(yù)查詢時機到達的情況下,執(zhí)行該預(yù)查詢語句,得到預(yù)查詢結(jié)果,接收到新的類似的查詢語句時,優(yōu)先從預(yù)查詢結(jié)果中進行查詢,能夠?qū)τ脩粜袨檫M行預(yù)測,很大程度上提高數(shù)據(jù)查詢的速度。[0107]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)?!緳?quán)利要求】1.一種數(shù)據(jù)的查詢方法,其特征在于,包括:對預(yù)先接收到的至少一個數(shù)據(jù)查詢語句進行整合,得到預(yù)查詢語句;在預(yù)查詢時機到達的情況下,執(zhí)行所述預(yù)查詢語句,得到預(yù)查詢結(jié)果;在接收到當(dāng)前數(shù)據(jù)查詢語句的情況下,執(zhí)行所述當(dāng)前數(shù)據(jù)查詢語句并在所述預(yù)查詢結(jié)果中進行查詢。2.根據(jù)權(quán)利要求1所述的查詢方法,其特征在于,對預(yù)先接收到的至少一個數(shù)據(jù)查詢語句進行整合包括以下至少之一:對多個數(shù)據(jù)查詢語句的查詢參數(shù)進行合并、對所述至少一個數(shù)據(jù)查詢語句的查詢參數(shù)進行刪除、對所述至少一個數(shù)據(jù)查詢語句的查詢參數(shù)進行擴展。3.根據(jù)權(quán)利要求1所述的查詢方法,其特征在于,執(zhí)行所述預(yù)查詢語句之前,進一步包括:確定預(yù)先接收到的所述至少一個數(shù)據(jù)查詢語句中每個數(shù)據(jù)查詢語句被接收到的時機,得到所述至少一個數(shù)據(jù)查詢語句被接收到的時機的分布規(guī)律;根據(jù)所述分布規(guī)律確定所述得到的預(yù)查詢語句的所述預(yù)查詢時機。4.根據(jù)權(quán)利要求1所述的查詢方法,其特征在于,進行整合的所述至少一個數(shù)據(jù)查詢語句滿足以下條件:預(yù)先接收到的多個數(shù)據(jù)查詢語句達到預(yù)定數(shù)量、且該多個數(shù)據(jù)查詢語句的查詢參數(shù)彼此相符。5.根據(jù)權(quán)利要求4所述的查詢方法,其特征在于,多個數(shù)據(jù)查詢語句的查詢參數(shù)彼此相符是指:所述多個數(shù)據(jù)查詢語句具有相同的數(shù)據(jù)查詢區(qū)域、和/或要查詢的數(shù)據(jù)類型。6.根據(jù)權(quán)利要求1所述的查詢方法,其特征在于,執(zhí)行所述當(dāng)前數(shù)據(jù)查詢語句并在所述預(yù)查詢結(jié)果中進行查詢之前,所述查詢方法進一步包括:判斷所述當(dāng)前數(shù)據(jù)查詢語句的數(shù)據(jù)查詢范圍是否超出所述預(yù)查詢語句的數(shù)據(jù)查詢范圍;在判斷結(jié)果為否的情況下,執(zhí)行所述數(shù)據(jù)查詢語句并在所述預(yù)查詢結(jié)果中進行查詢。7.根據(jù)權(quán)利要求6所述的查詢方法,其特征在于,在所述當(dāng)前數(shù)據(jù)查詢語句的數(shù)據(jù)查詢范圍超出所述預(yù)查詢語句的數(shù)據(jù)查詢范圍的情況下,根據(jù)所述當(dāng)前數(shù)據(jù)查詢語句對所述預(yù)查詢語句進行更新。8.根據(jù)權(quán)利要求7所述的查詢方法,其特征在于,更新了所述預(yù)查詢語句之后,所述查詢方法進一步包括:在下一預(yù)查詢時機到達的情況下,執(zhí)行更新后的所述預(yù)查詢語句得到查詢結(jié)果,并用該查詢結(jié)果更新所述預(yù)查詢結(jié)果。9.根據(jù)權(quán)利要求1所述的查詢方法,其特征在于,進一步包括:對所述預(yù)查詢結(jié)果、和/或所述預(yù)查詢語句設(shè)置生存時間。10.一種數(shù)據(jù)的查詢裝置,其特征在于,包括:獲得模塊,用于對預(yù)先接收到的至少一個數(shù)據(jù)查詢語句進行整合,得到預(yù)查詢語句;執(zhí)行模塊,用于在預(yù)查詢時機到達的情況下,執(zhí)行所述預(yù)查詢語句,得到預(yù)查詢結(jié)果;查詢模塊,用于在接收到當(dāng)前數(shù)據(jù)查詢語句的情況下,執(zhí)行所述數(shù)據(jù)查詢語句并在所述預(yù)查詢結(jié)果中進行查詢?!疚臋n編號】G06F17/30GK103559300SQ201310566602【公開日】2014年2月5日申請日期:2013年11月13日優(yōu)先權(quán)日:2013年11月13日【發(fā)明者】李繼炳,宋懷明,苗艷超,劉新春,邵宗有申請人:曙光信息產(chǎn)業(yè)(北京)有限公司,曙光信息產(chǎn)業(yè)股份有限公司