一種大數(shù)據(jù)篩選方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種大數(shù)據(jù)篩選方法及裝置,該方法包括按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊;接收所述再查詢結(jié)果,建立再查詢結(jié)果的索引,將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊;訪問所述數(shù)據(jù)快速篩選存儲模塊,使用所述索引篩選再查詢結(jié)果,返回篩選結(jié)果。本發(fā)明提高了對大數(shù)據(jù)的數(shù)據(jù)查詢結(jié)果進(jìn)行篩選的效率,減少了對整個存儲集群及查詢WEB服務(wù)器并發(fā)查詢的壓力,提高了WEB系統(tǒng)查詢結(jié)果處理的交互性,使得查詢系統(tǒng)的應(yīng)用性更佳。
【專利說明】一種大數(shù)據(jù)篩選方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息檢索領(lǐng)域,特別是一種大數(shù)據(jù)篩選方法及裝置。
【背景技術(shù)】
[0002]在進(jìn)行TB、GB級原始數(shù)據(jù)查詢時經(jīng)常需要對已經(jīng)查詢出的大量結(jié)果數(shù)據(jù)進(jìn)行篩選查詢。如果想對查詢出的結(jié)果數(shù)據(jù)再次附加條件查詢篩選,在小數(shù)據(jù)量情況下,一般根據(jù)查詢條件,對存儲有原數(shù)據(jù)的數(shù)據(jù)庫進(jìn)行全庫查詢,或者對存儲有原數(shù)據(jù)的數(shù)據(jù)表進(jìn)行全表查詢,得到查詢結(jié)果。但對于大數(shù)據(jù)一般存儲在多個集群存儲器上,每個集群存儲器按照預(yù)定策略分別記錄一部分結(jié)果數(shù)據(jù),從而達(dá)到數(shù)據(jù)存儲負(fù)載均衡的目的,也即分布式的結(jié)果數(shù)據(jù)存儲,另外在某些系統(tǒng)中還對每一個集群存儲器設(shè)置冗余集群存儲器的方式進(jìn)行歷史數(shù)據(jù)冗余。此時,系統(tǒng)中的結(jié)果數(shù)據(jù)分布式地存儲于多個不同的集群存儲器中,對于各項結(jié)果數(shù)據(jù)在集群存儲器中與冗余集群存儲器中均存在記錄。在采用上述分布式結(jié)果數(shù)據(jù)存儲系統(tǒng)時,對某項結(jié)果數(shù)據(jù)的再查詢必須首先獲取結(jié)果數(shù)據(jù)對應(yīng)的集群存儲器地址,同時該集群存儲器當(dāng)前能夠響應(yīng)查詢請求并返回查詢結(jié)果。存在互為冗余的集群存儲器時,需要實時判斷向哪個集群存儲器進(jìn)行查詢。因此,對首次查詢結(jié)果數(shù)據(jù)的再次查詢難度較大,并且查詢性能及中標(biāo)率會有所下降。對于大數(shù)據(jù)的數(shù)據(jù)查詢結(jié)果進(jìn)行篩選的效率較低,并且對整個存儲集群及查詢WEB服務(wù)器產(chǎn)生極大的并發(fā),使得整個查詢系統(tǒng)的可用性不佳。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種大數(shù)據(jù)篩選方法及裝置,解決對首次查詢結(jié)果進(jìn)行再查詢難度大、查詢性能及中標(biāo)率下降的問題,提高了對大數(shù)據(jù)的數(shù)據(jù)查詢結(jié)果進(jìn)行篩選的效率,減少了對整個存儲集群及查詢WEB服務(wù)器并發(fā)查詢的壓力,提高了 WEB系統(tǒng)查詢結(jié)果處理的交互性,使得查詢系統(tǒng)的應(yīng)用性更佳。
[0004]本發(fā)明為實現(xiàn)上述目的采用的技術(shù)方案是:一種大數(shù)據(jù)篩選方法,包括如下步驟:
[0005]按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊;
[0006]接收所述再查詢結(jié)果,建立再查詢結(jié)果的索引,將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊;
[0007]訪問所述數(shù)據(jù)快速篩選存儲模塊,使用所述索引篩選再查詢結(jié)果,返回篩選結(jié)果。
[0008]進(jìn)一步,所述首次查詢包括,按照首次查詢條件查詢數(shù)據(jù)存儲模塊,返回首次查詢結(jié)果給頁面展示模塊用于頁面展示,并將首次查詢結(jié)果存儲于緩存數(shù)據(jù)庫。
[0009]進(jìn)一步,所述按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢之前包括,記錄首次查詢條件,訪問緩存數(shù)據(jù)庫并讀取首次查詢結(jié)果。
[0010]進(jìn)一步,所述接收再查詢結(jié)果之后、建立再查詢結(jié)果的索引之前包括,建立再查詢結(jié)果表。
[0011]進(jìn)一步,所述建立再查詢結(jié)果的索引包括,根據(jù)篩選條件建立索引,通過保存在所述索引中的頁碼找到再查詢結(jié)果表中對應(yīng)的記錄。
[0012]進(jìn)一步,所述將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊包括,將再查詢結(jié)果表和索引存儲于數(shù)據(jù)快速篩選存儲模塊的數(shù)據(jù)庫內(nèi)。
[0013]第二方面,一種大數(shù)據(jù)篩選裝置,包括:
[0014]首次查詢結(jié)果調(diào)度模塊,用于按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊;
[0015]數(shù)據(jù)快速篩選準(zhǔn)備模塊,用于接收所述再查詢結(jié)果,建立再查詢結(jié)果的索引,將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊;
[0016]篩選查詢服務(wù)模塊,用于訪問所述數(shù)據(jù)快速篩選存儲模塊,使用索引篩選再查詢結(jié)果,返回篩選結(jié)果。
[0017]進(jìn)一步,還包括頁面查詢展示模塊,用于提供首次數(shù)據(jù)查詢接口和篩選查詢接口。
[0018]進(jìn)一步,所述首次查詢結(jié)果調(diào)度模塊包括:
[0019]首次查詢條件獲取單元,用于獲取首次數(shù)據(jù)查詢的查詢條件;
[0020]首次查詢結(jié)果獲取單元,用于訪問緩存數(shù)據(jù)庫并讀取首次查詢結(jié)果;
[0021]數(shù)據(jù)再查詢單元,用于按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,得到再查詢結(jié)果;
[0022]再查詢結(jié)果發(fā)送單元,用于將所述再查詢結(jié)果表發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊。
[0023]進(jìn)一步,所述數(shù)據(jù)快速篩選準(zhǔn)備模塊包括:
[0024]再查詢結(jié)果接收單元,用于接收所述再查詢結(jié)果表;
[0025]索引創(chuàng)建單元,用于建立所述再查詢結(jié)果表的索引;
[0026]數(shù)據(jù)發(fā)送單元,用于將再查詢結(jié)果表和索引發(fā)送給數(shù)據(jù)快速篩選存儲模塊;
[0027]數(shù)據(jù)格式轉(zhuǎn)換單元,用于將數(shù)據(jù)快速篩選存儲模塊返回的篩選結(jié)果的數(shù)據(jù)格式轉(zhuǎn)換成與首次查詢結(jié)果的數(shù)據(jù)格式相同,再發(fā)送給篩選查詢服務(wù)模塊。
[0028]本發(fā)明通過在第一次查詢結(jié)束后,記錄第一次查詢的結(jié)果和查詢條件,按照第一次查詢條件對第一次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊,完成對原始數(shù)據(jù)的查詢結(jié)果的調(diào)度;數(shù)據(jù)快速篩選準(zhǔn)備模塊為再查詢結(jié)果建立索引,將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊。在對再查詢結(jié)果進(jìn)行篩選查詢時,只需訪問數(shù)據(jù)快速篩選存儲模塊,使用所述索引獲得篩選結(jié)果,即可返回篩選結(jié)果;本發(fā)明提高了對大數(shù)據(jù)的數(shù)據(jù)查詢結(jié)果進(jìn)行篩選的效率,減少了對整個存儲集群及查詢WEB服務(wù)器并發(fā)查詢的壓力,提高了 WEB系統(tǒng)查詢結(jié)果處理的交互性,使得查詢系統(tǒng)的應(yīng)用性更佳。
【專利附圖】
【附圖說明】
[0029]圖1是本發(fā)明實施例1提供的大數(shù)據(jù)篩選方法的流程圖;
[0030]圖Ι-a是本發(fā)明實施例1中步驟按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊的具體的實現(xiàn)方式的流程圖;
[0031]圖l_b是本發(fā)明實施例1中步驟接收所述再查詢結(jié)果,建立再查詢結(jié)果的索引,將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊的優(yōu)選的實現(xiàn)方式的流程圖;
[0032]圖2是本發(fā)明的實施例2提供的大數(shù)據(jù)篩選裝置的結(jié)構(gòu)示意圖;
[0033]圖3是本發(fā)明的大數(shù)據(jù)篩選裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0034]為使本發(fā)明解決的技術(shù)問題、采用的技術(shù)方案和達(dá)到的技術(shù)效果更加清楚,下面將結(jié)合附圖對本發(fā)明實施例的技術(shù)方案作進(jìn)一步的詳細(xì)描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0035]實施例1:
[0036]本方法主要是對大數(shù)據(jù)進(jìn)行查詢,現(xiàn)階段主要的大數(shù)據(jù)存儲在關(guān)系型數(shù)據(jù)庫以及非關(guān)系型數(shù)據(jù)庫中。關(guān)系型數(shù)據(jù)庫主要代表有Oracle,非關(guān)系型數(shù)據(jù)庫的代表有HBASE(Hadoop database)。不論原始數(shù)據(jù)存儲在哪種類型的數(shù)據(jù)庫,數(shù)據(jù)庫均是以集群的方式存在,因此,此方法不僅適用于關(guān)系型數(shù)據(jù)庫,同時也適用于非關(guān)系型數(shù)據(jù)庫。下面以兩種數(shù)據(jù)庫混裝數(shù)據(jù)進(jìn)行持久化為例,具體說明本方法的技術(shù)方案。
[0037]如圖1所示,本發(fā)明提供一種大數(shù)據(jù)篩選方法,包括:
[0038]步驟S100:按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊;
[0039]首次查詢條件是第一次查詢存儲原始數(shù)據(jù)的數(shù)據(jù)存儲模塊的條件,首次查詢結(jié)果是按照第一次查詢條件查詢數(shù)據(jù)存儲模塊所獲得的查詢結(jié)果。對于不同的首次查詢條件,得到的首次查詢結(jié)果也不同。
[0040]參照圖Ι-a所示,為實現(xiàn)步驟S100的具體的實現(xiàn)方式,該步驟具體包括:
[0041]步驟101:記錄首次查詢條件和首次查詢結(jié)果;
[0042]大量原始數(shù)據(jù)存儲在數(shù)據(jù)存儲模塊的HBASE集群中,部分存儲在Oracle集群中,第一次查詢數(shù)據(jù)存儲模塊時,根據(jù)查詢條件返回查詢結(jié)果,暫存查詢結(jié)果和查詢條件,從而避免篩選第一次查詢結(jié)果時再訪問數(shù)據(jù)存儲模塊,提高了查詢效率。數(shù)據(jù)存儲模塊是用以存儲數(shù)據(jù)的數(shù)據(jù)庫集群,包括關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫。
[0043]步驟102:按照首次查詢條件查詢首次查詢結(jié)果,得到再查詢結(jié)果;
[0044]利用首次查詢條件篩選首次查詢結(jié)果中與查詢條件無關(guān)的數(shù)據(jù),確保數(shù)據(jù)的準(zhǔn)確度。如果首次查詢比較精確,首次查詢結(jié)果中沒有與查詢條件無關(guān)的數(shù)據(jù),那么,按照首次查詢條件查詢首次查詢結(jié)果所得到的再查詢結(jié)果的數(shù)據(jù)與首次查詢結(jié)果的數(shù)據(jù)相同。
[0045]步驟103:將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊;
[0046]將經(jīng)過篩選后的再查詢結(jié)果的數(shù)據(jù)格式轉(zhuǎn)換成JS0N格式發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊中。具體是:再查詢結(jié)果中包括Oracle數(shù)據(jù)庫中的數(shù)據(jù)對象和Hbase數(shù)據(jù)庫中的數(shù)據(jù)對象。使用JAVA語言中java對象轉(zhuǎn)JS0N對象的工具包將Oracle數(shù)據(jù)庫提供的java數(shù)據(jù)對象轉(zhuǎn)換為JS0N對象。Hbase數(shù)據(jù)庫中得到的結(jié)果為壓縮的鍵值對字符串,將其解壓后利用JAVA語言的java字符串轉(zhuǎn)JS0N對象的工具包將其轉(zhuǎn)為JS0N對象。JS0N作為一種輕量級的數(shù)據(jù)交換格式,基于 JavaScript (Standard ECMA-262 3rd Edit1n-December1999)的一個子集,完全獨(dú)立于語言的文本格式,是一種理想的數(shù)據(jù)交換語言,具有易于人閱讀和編寫,同時也易于機(jī)器解析和生成的特點(diǎn)。
[0047]步驟S110:接收所述再查詢結(jié)果,建立再查詢結(jié)果的索引,將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊;
[0048]參照圖Ι-b所示,為步驟S110的一個優(yōu)選地實現(xiàn)方式,該步驟具體包括:
[0049]步驟S111:接收所述JS0N格式的再查詢結(jié)果,并利用solr技術(shù)建立再查詢結(jié)果的索引;所述索引是根據(jù)篩選條件來建,是篩選條件表中一列或多列按照一定順序建立的列值與記錄行之間的對應(yīng)關(guān)系表,其中可以按照需要以升序或降序的順序建立列值與記錄行之間的對應(yīng)關(guān)系,尤其重要的是需要篩選的字段必須建索引。索引的建立是由solr技術(shù)本身提供的方法進(jìn)行實現(xiàn)。Solr是一個獨(dú)立的企業(yè)級搜索應(yīng)用服務(wù)器,它對外提供ffeb-service的API接口。用戶可以通過http請求,向搜索引擎服務(wù)器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,并得到XML格式的返回結(jié)果。
[0050]再查詢結(jié)果是按照第一次查詢條件對首次查詢結(jié)果進(jìn)行篩選得到的查詢結(jié)果。將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊;篩選存儲模塊是服務(wù)器中分配的物理存儲單元。
[0051]數(shù)據(jù)快速篩選準(zhǔn)備模塊具體作用是將通過第一次查詢所得的數(shù)據(jù)轉(zhuǎn)化為JS0N對象,并且將JS0N對象存儲到數(shù)據(jù)存儲模塊。
[0052]步驟112:將再查詢結(jié)果和索引存儲于數(shù)據(jù)快速篩選存儲模塊的Mongo DB ;存放再查詢結(jié)果和索引的數(shù)據(jù)庫不在原始數(shù)據(jù)存儲的數(shù)據(jù)存儲模塊中,避免再次查找存儲大量數(shù)據(jù)的集群,提高了查詢效率。Mongo DB是一種非關(guān)系型數(shù)據(jù)庫,其可以很好的實現(xiàn)面向?qū)ο蟮乃枷?,在Mongo DB中每一條記錄都是一個Document對象。
[0053]步驟S120:訪問所述數(shù)據(jù)快速篩選存儲模塊,使用所述索引篩選再查詢結(jié)果,每二次查詢或是篩選查詢時不再去原始的Oracle數(shù)據(jù)庫和Hbase數(shù)據(jù)庫進(jìn)行查詢,而是直將查詢條件發(fā)送到篩選查詢服務(wù)模塊,在索引中找到符合篩選條件的索引值,通過保存在所述索引中的頁碼快速找到表中對應(yīng)的記錄,從數(shù)據(jù)快速篩選存儲模塊中取數(shù)據(jù),返回給前臺,供頁面展示。
[0054]篩選再查詢結(jié)果是通過http收到一個JS0N響應(yīng)來實現(xiàn)的。
[0055]按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊;根據(jù)篩選條件,建立再查詢結(jié)果的索引,并將索引文件和再查詢結(jié)果存儲于數(shù)據(jù)快速篩選存儲模塊。當(dāng)需要對第一次查詢結(jié)果進(jìn)行篩選時,可以通過索引,準(zhǔn)確的查找到目標(biāo)數(shù)據(jù)。第一次查詢數(shù)據(jù)的結(jié)果和索引文件均存儲于數(shù)據(jù)快速篩選模塊,實現(xiàn)對數(shù)據(jù)查詢結(jié)果的快速篩選,避免了對第一查詢結(jié)果進(jìn)行篩選時再訪問數(shù)據(jù)存儲模塊,減少了查詢服務(wù)器對數(shù)據(jù)存儲模塊的并發(fā)壓力,提高了整個系統(tǒng)的可用性。頁面查詢展示模塊提供篩選查詢接口,利用篩選查詢服務(wù)模塊對數(shù)據(jù)快速篩選存儲模塊進(jìn)行數(shù)據(jù)查詢,使用所述再查詢結(jié)果的索引快速查找到擬篩選的數(shù)據(jù),將篩選結(jié)果返回數(shù)據(jù)快速篩選準(zhǔn)備模塊,由數(shù)據(jù)篩選準(zhǔn)備模塊將篩選結(jié)果的數(shù)據(jù)格式轉(zhuǎn)換成與原頁面展示的數(shù)據(jù)格式相同,并發(fā)送給篩選查詢服務(wù)模塊,由篩選查詢模塊將篩選結(jié)果經(jīng)篩選查詢接口發(fā)送給頁面查詢展示模塊,避免改變原有的頁面展示,客戶的體驗度更好。
[0056]實施例2:
[0057]如圖2所示,一種大數(shù)據(jù)篩選裝置,包括:
[0058]首次查詢結(jié)果調(diào)度模塊220,用于按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊240 ;
[0059]所述首次查詢結(jié)果調(diào)度模塊220包括:
[0060]首次查詢條件獲取單元221,用于獲取首次數(shù)據(jù)查詢的查詢條件;
[0061]首次查詢結(jié)果獲取單元222,用于訪問緩存數(shù)據(jù)庫,并讀取首次查詢結(jié)果;
[0062]其中,緩存數(shù)據(jù)庫是服務(wù)器上指定的物理存儲空間。
[0063]數(shù)據(jù)再查詢單元223,用于按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,得到再查詢結(jié)果;另外,還用于利用JAVA語言中java對象轉(zhuǎn)JS0N對象的工具包將Oracle數(shù)據(jù)庫提供的java數(shù)據(jù)對象轉(zhuǎn)換為JS0N對象。Hbase數(shù)據(jù)庫中得到的結(jié)果為壓縮的鍵值對字符串,將其解壓后利用JAVA語言的java字符串轉(zhuǎn)JS0N對象的工具包將其轉(zhuǎn)為JS0N對象。
[0064]再查詢結(jié)果發(fā)送單元224,用于將所述再查詢結(jié)果表發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊 240。
[0065]數(shù)據(jù)快速篩選準(zhǔn)備模塊240,用于接收所述再查詢結(jié)果,按照篩選條件建立再查詢結(jié)果的索引,將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊250 ;
[0066]所述數(shù)據(jù)快速篩選準(zhǔn)備模塊240包括:
[0067]再查詢結(jié)果接收單元241,用于接收所述再查詢結(jié)果表;
[0068]索引創(chuàng)建單元242,用于建立所述再查詢結(jié)果表的索引;
[0069]數(shù)據(jù)發(fā)送單元243,用于將再查詢結(jié)果表和索引發(fā)送給數(shù)據(jù)快速篩選存儲模塊250 ;
[0070]數(shù)據(jù)格式轉(zhuǎn)換單元244,用于將數(shù)據(jù)快速篩選存儲模塊250返回的篩選結(jié)果的數(shù)據(jù)格式轉(zhuǎn)換成與首次查詢結(jié)果的數(shù)據(jù)格式相同,此處數(shù)據(jù)快速篩選存儲模塊250返回的查詢結(jié)果為JS0N格式的數(shù)據(jù),需要將其格式為java格式的數(shù)據(jù)對象。整個轉(zhuǎn)格式過程是將JS0N字符串通過JAVA語言提供的方法將其轉(zhuǎn)換成對應(yīng)的java對象,再發(fā)送給篩選查詢服務(wù)模塊230。
[0071]篩選查詢服務(wù)模塊230,用于訪問所述數(shù)據(jù)快速篩選存儲模塊250,使用索引篩選再查詢結(jié)果,返回篩選結(jié)果。
[0072]該裝置還包括頁面查詢展示模塊210,用于提供首次數(shù)據(jù)查詢接口和篩選查詢接□。
[0073]綜上所述,在原有的數(shù)據(jù)查詢系統(tǒng)增加數(shù)據(jù)快速篩選準(zhǔn)備模塊240和數(shù)據(jù)快速篩選存儲模塊250,數(shù)據(jù)快速篩選準(zhǔn)備模塊240為首次查詢結(jié)果調(diào)度模塊220中產(chǎn)生的再查詢結(jié)果建立索引,并將建立的索引文件連同再查詢結(jié)果存儲到數(shù)據(jù)快速篩選存儲模塊250。在對第一次查詢結(jié)果進(jìn)行再次查詢時,僅需要直將查詢條件發(fā)送到篩選查詢服務(wù)模塊230,在索引中找到符合篩選條件的索引值,通過保存在所述索引中的頁碼快速找到表中對應(yīng)的記錄,從數(shù)據(jù)快速篩選存儲模塊250中取數(shù)據(jù),返回給前臺,供頁面展示。解決對首次查詢結(jié)果進(jìn)行再查詢難度大、查詢性能及中標(biāo)率下降的問題,提高了對大數(shù)據(jù)的數(shù)據(jù)查詢結(jié)果進(jìn)行篩選的效率,減少了對整個存儲集群及查詢WEB服務(wù)器并發(fā)查詢的壓力,提高了 WEB系統(tǒng)查詢結(jié)果處理的交互性,使得查詢系統(tǒng)的應(yīng)用性更佳。
[0074]實施例3:
[0075]參照圖3所示,為本發(fā)明大數(shù)據(jù)篩選裝置的結(jié)構(gòu)框圖。
[0076]頁面查詢展示模塊310提供查詢接口和篩選接口,根據(jù)不同的業(yè)務(wù)需求分別向數(shù)據(jù)庫查詢服務(wù)層320和篩選查詢服務(wù)模塊321發(fā)送查詢數(shù)據(jù)指令,并分別接收數(shù)據(jù)庫查詢服務(wù)層320和數(shù)據(jù)快速篩選準(zhǔn)備模塊340返回的查詢結(jié)果。第一次查詢數(shù)據(jù)庫時,數(shù)據(jù)庫查詢服務(wù)層320通過查詢接口接收查詢數(shù)據(jù)指令,訪問數(shù)據(jù)存儲模塊330,根據(jù)查詢條件返回查詢結(jié)果給頁面查詢展示模塊310,進(jìn)行展示。首次查詢結(jié)果調(diào)度模塊322記錄第一次查詢的查詢條件,并按照所述第一次查詢條件對第一次查詢結(jié)果進(jìn)行再查詢調(diào)度,濾除第一次查詢結(jié)果中可能存在的與第一次查詢條件無關(guān)的數(shù)據(jù)。若不存在與第一次查詢條件無關(guān)的數(shù)據(jù),則再查詢調(diào)度的結(jié)果與第一次查詢結(jié)果相同。查詢結(jié)果調(diào)度模塊322將再查詢調(diào)度得到的對象的java格式轉(zhuǎn)換成JSON格式,并發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊340。數(shù)據(jù)快速篩選準(zhǔn)備模塊340根據(jù)篩選條件建立索引,并將索引文件和再查詢結(jié)果存儲于數(shù)據(jù)快速篩選存儲層350。對第一次查詢結(jié)果進(jìn)行再次篩選時,篩選查詢服務(wù)模塊321通過篩選接口接收篩選指令,在索引中找到符合篩選條件的索引值,通過保存在所述索引中的頁碼快速找到表中對應(yīng)的記錄,訪問數(shù)據(jù)快速篩選存儲層350,獲得待查詢數(shù)據(jù),并發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊340。數(shù)據(jù)快速篩選準(zhǔn)備模塊340通過JAVA語言提供的方法將JSON字符串轉(zhuǎn)換成第一次查詢結(jié)果的數(shù)據(jù)格式相同的java對象,將轉(zhuǎn)換后的篩選結(jié)果通過篩選接口發(fā)送給頁面查詢展示模塊310進(jìn)行展示。
[0077]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,該程序可以存儲于計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括存儲器、磁盤或光盤等。
[0078]以上內(nèi)容僅為本發(fā)明的較佳實施例,對于本領(lǐng)域的普通技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種大數(shù)據(jù)篩選方法,其特征在于,包括如下步驟: 按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊; 接收所述再查詢結(jié)果,建立再查詢結(jié)果的索引,將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊; 訪問所述數(shù)據(jù)快速篩選存儲模塊,使用所述索引篩選再查詢結(jié)果,返回篩選結(jié)果。
2.根據(jù)權(quán)利要求1所述的大數(shù)據(jù)篩選方法,其特征在于:所述首次查詢包括按照首次查詢條件查詢數(shù)據(jù)存儲模塊,返回首次查詢結(jié)果給頁面展示模塊用于頁面展示,并將首次查詢結(jié)果存儲于緩存數(shù)據(jù)庫。
3.根據(jù)權(quán)利要求1或2所述的大數(shù)據(jù)篩選方法,其特征在于:所述按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢之前包括,記錄首次查詢條件,訪問緩存數(shù)據(jù)庫并讀取首次查詢結(jié)果。
4.根據(jù)權(quán)利要求3所述的大數(shù)據(jù)篩選方法,其特征在于:所述接收再查詢結(jié)果之后、建立再查詢結(jié)果的索引之前包括,建立再查詢結(jié)果表。
5.根據(jù)權(quán)利要求1所述的大數(shù)據(jù)篩選方法,其特征在于:所述建立再查詢結(jié)果的索引包括,根據(jù)篩選條件建立索引,通過保存在所述索引中的頁碼找到再查詢結(jié)果表中對應(yīng)的記錄。
6.根據(jù)權(quán)利要求4或5所述的大數(shù)據(jù)篩選方法,其特征在于:所述將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊包括,將再查詢結(jié)果表和索引存儲于數(shù)據(jù)快速篩選存儲模塊的數(shù)據(jù)庫內(nèi)。
7.一種大數(shù)據(jù)篩選裝置,其特征在于,包括: 首次查詢結(jié)果調(diào)度模塊,用于按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,將再查詢結(jié)果發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊; 數(shù)據(jù)快速篩選準(zhǔn)備模塊,用于接收所述再查詢結(jié)果,建立再查詢結(jié)果的索引,將所述再查詢結(jié)果和索引發(fā)送到數(shù)據(jù)快速篩選存儲模塊; 篩選查詢服務(wù)模塊,用于訪問所述數(shù)據(jù)快速篩選存儲模塊,使用索引篩選再查詢結(jié)果,返回篩選結(jié)果。
8.根據(jù)權(quán)利要求7所述的大數(shù)據(jù)篩選裝置,其特征在于,還包括頁面查詢展示模塊,用于提供首次數(shù)據(jù)查詢接口和篩選查詢接口。
9.根據(jù)權(quán)利要求7所述的大數(shù)據(jù)篩選裝置,其特征在于,所述首次查詢結(jié)果調(diào)度模塊包括: 首次查詢條件獲取單元,用于獲取首次數(shù)據(jù)查詢的查詢條件; 首次查詢結(jié)果獲取單元,用于訪問緩存數(shù)據(jù)庫并讀取首次查詢結(jié)果; 數(shù)據(jù)再查詢單元,用于按照首次查詢條件對首次查詢結(jié)果進(jìn)行再查詢,得到再查詢結(jié)果; 再查詢結(jié)果發(fā)送單元,用于將所述再查詢結(jié)果表發(fā)送給數(shù)據(jù)快速篩選準(zhǔn)備模塊。
10.根據(jù)權(quán)利要求8所述的大數(shù)據(jù)篩選裝置,其特征在于,所述數(shù)據(jù)快速篩選準(zhǔn)備模塊包括: 再查詢結(jié)果接收單元,用于接收所述再查詢結(jié)果表; 索引創(chuàng)建單元,用于建立所述再查詢結(jié)果表的索引; 數(shù)據(jù)發(fā)送單元,用于將再查詢結(jié)果表和索引發(fā)送給數(shù)據(jù)快速篩選存儲模塊; 數(shù)據(jù)格式轉(zhuǎn)換單元,用于將數(shù)據(jù)快速篩選存儲模塊返回的篩選結(jié)果的數(shù)據(jù)格式轉(zhuǎn)換成與首次查詢結(jié)果的數(shù)據(jù)格式相同,再發(fā)送給篩選查詢服務(wù)模塊。
【文檔編號】G06F17/30GK104408084SQ201410636420
【公開日】2015年3月11日 申請日期:2014年11月6日 優(yōu)先權(quán)日:2014年11月6日
【發(fā)明者】吳雄輝 申請人:北京銳安科技有限公司