一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法
【專利摘要】本發(fā)明公開了一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,該方法在整個(gè)業(yè)務(wù)處理流程中引入數(shù)據(jù)緩存中間服務(wù)器,作為從數(shù)據(jù)庫(kù)中查詢出的數(shù)據(jù)到前臺(tái)展示的數(shù)據(jù)的中間緩存,同時(shí)提供了對(duì)查詢數(shù)據(jù)進(jìn)行二次處理的業(yè)務(wù)邏輯處理平臺(tái)和一套完整的數(shù)據(jù)緩存機(jī)制。本發(fā)明通過一次查詢解決基于同份結(jié)果數(shù)據(jù)集內(nèi)進(jìn)行的翻頁(yè)、最前、最后數(shù)據(jù)的展示問題,切實(shí)減小在海量數(shù)據(jù)查詢場(chǎng)景下,對(duì)數(shù)據(jù)庫(kù)的多次同條件查詢的壓力,實(shí)現(xiàn)基于海量數(shù)據(jù)查詢結(jié)果的二次處理,提高查詢效率,較好的解決數(shù)據(jù)量、操作流暢性和成本間的問題。
【專利說明】一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)數(shù)據(jù)查詢檢索領(lǐng)域,尤其涉及一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法。
【背景技術(shù)】
[0002]隨著信息時(shí)代的不斷發(fā)展,需要在基于WEB端瀏覽器上呈現(xiàn)的數(shù)據(jù)量出現(xiàn)越來越大的趨勢(shì),從幾年前的10條100條到現(xiàn)在的1000條,甚至上萬(wàn)條記錄需要給用戶進(jìn)行統(tǒng)一展示。同時(shí)由于客戶使用體驗(yàn)要求的提高,越來越多的使用體驗(yàn)要求使用者能夠在瀏覽器端能夠?qū)?shù)據(jù)進(jìn)行2次加工,以展示自己希望看到的數(shù)據(jù),如:過濾特定數(shù)據(jù)、選擇特定數(shù)據(jù)、按照一個(gè)或多個(gè)字段,對(duì)數(shù)據(jù)進(jìn)行排序、按照選擇的字段,對(duì)某些數(shù)據(jù)屬性的字段進(jìn)行求和、求平均、最大最小值等操作。目前典型的業(yè)務(wù)使用場(chǎng)景,如:查詢用戶的短信清單,月數(shù)據(jù)量可能達(dá)到每人上千條,數(shù)據(jù)庫(kù)中的清單數(shù)據(jù)達(dá)到100億條,并且用戶可能需要按照對(duì)方號(hào)碼進(jìn)行篩選;查詢用戶的上網(wǎng)信令清單,月數(shù)據(jù)量可能達(dá)到每人上萬(wàn)條,數(shù)據(jù)庫(kù)中的清單記錄數(shù)達(dá)到1000億以上,并且需要按照數(shù)據(jù)流量進(jìn)行排序和匯總。
[0003]現(xiàn)有的數(shù)據(jù)查詢和處理技術(shù)主要通過JSP、JS的方法實(shí)現(xiàn)海量數(shù)據(jù)的展示,在前臺(tái)進(jìn)行數(shù)據(jù)分頁(yè)展示,如果前臺(tái)有數(shù)據(jù)處理的要求,如排序、篩選等,則通過Web服務(wù)器再次到數(shù)據(jù)庫(kù)中進(jìn)行查詢后再處理,然后再展示處理結(jié)果的方式,如圖1所示。這種查詢和處理的方法存在以下缺點(diǎn):
1、頁(yè)面需要等待后臺(tái)查詢完成,經(jīng)常會(huì)因?yàn)椴樵冃阅苈鸷谄恋葐栴},引起客戶操作體驗(yàn)差;
2、所有的基于瀏覽器的后續(xù)的業(yè)務(wù)操作,均需要到原始數(shù)據(jù)源如數(shù)據(jù)庫(kù)或文件中進(jìn)行再次查詢,如果源數(shù)據(jù)庫(kù)非常大,則對(duì)源數(shù)據(jù)庫(kù)的壓力將隨著前臺(tái)動(dòng)作的增加持續(xù)增大,對(duì)業(yè)務(wù)成本和用戶體驗(yàn)提出嚴(yán)重挑戰(zhàn)。
【發(fā)明內(nèi)容】
[0004]針對(duì)上述缺點(diǎn),本發(fā)明提供一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法。該技術(shù)實(shí)現(xiàn)方案解決:
1、在海量數(shù)據(jù)的查詢場(chǎng)景下,切實(shí)減少對(duì)數(shù)據(jù)庫(kù)的多次同條件查詢的壓力,通過一次查詢解決基于同份結(jié)果數(shù)據(jù)集內(nèi)進(jìn)行的翻頁(yè)、最前、最后數(shù)據(jù)的展示問題;
2、對(duì)基于海量數(shù)據(jù)的查詢結(jié)果的二次處理,如支持多字段多方向排序,多字段聯(lián)合條件過濾,多指標(biāo)字段的數(shù)據(jù)聚合計(jì)算、求和、求記錄平均、求最大、最小等操作。
[0005]為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,在其整個(gè)業(yè)務(wù)處理流程中引入數(shù)據(jù)緩存中間服務(wù)器,緩存從數(shù)據(jù)庫(kù)中查詢到前臺(tái)展示的數(shù)據(jù),同時(shí)提供了對(duì)查詢數(shù)據(jù)進(jìn)行二次處理的業(yè)務(wù)邏輯處理平臺(tái)和一套完整的數(shù)據(jù)緩存機(jī)制。
[0006]本發(fā)明的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其查詢流程包括以下步驟:
(1)、瀏覽器收到業(yè)務(wù)查詢條件,向Web服務(wù)器提交查詢請(qǐng)求;
(2)、Web服務(wù)器檢測(cè)是否已經(jīng)存在相同的業(yè)務(wù)邏輯查詢:如存在,直接向數(shù)據(jù)緩存中間服務(wù)器提交業(yè)務(wù)查詢,后者返回首頁(yè)記錄數(shù)據(jù)經(jīng)Web服務(wù)器封裝送瀏覽器展示;如不存在,通過獨(dú)立進(jìn)程緩存查詢服務(wù)向數(shù)據(jù)庫(kù)服務(wù)器提交業(yè)務(wù)查詢,并將返回的查詢數(shù)據(jù)緩存至數(shù)據(jù)緩存中間服務(wù)器,后者記錄當(dāng)前業(yè)務(wù)邏輯查詢相關(guān)的狀態(tài);
(3)、瀏覽器通過刷新數(shù)據(jù)緩存中間服務(wù)器已經(jīng)緩存的記錄條數(shù)來確認(rèn)數(shù)據(jù)查詢的進(jìn)度,直到所有業(yè)務(wù)數(shù)據(jù)緩存到數(shù)據(jù)緩存中間服務(wù)器,整個(gè)業(yè)務(wù)邏輯查詢流程結(jié)束。
[0007]本發(fā)明的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其二次處理流程包括以下步驟:
(1)、瀏覽器收到對(duì)查詢業(yè)務(wù)結(jié)果集進(jìn)行二次處理的條件,如要求進(jìn)行指定字段排序、某些特定過濾條件、根據(jù)某些指標(biāo)進(jìn)行最大最小平均等計(jì)算等,向Web服務(wù)器提交查詢請(qǐng)求;
(2)、Web服務(wù)器直接將二次處理的業(yè)務(wù)請(qǐng)求發(fā)至數(shù)據(jù)緩存中間服務(wù)器進(jìn)行處理;
(3)、數(shù)據(jù)緩存中間服務(wù)器將處理結(jié)果返回Web服務(wù)器,由后者封裝送瀏覽器展示;
(4)、瀏覽器收到翻頁(yè)查詢條件,向Web服務(wù)器提交查詢請(qǐng)求;
(5)、Web服務(wù)器直接將二次處理的業(yè)務(wù)請(qǐng)求發(fā)至數(shù)據(jù)緩存中間服務(wù)器進(jìn)行處理;
(6)、數(shù)據(jù)緩存中間服務(wù)器將處理結(jié)果返回Web服務(wù)器,由后者封裝送瀏覽器展示,二次處理流程結(jié)束。
[0008]本發(fā)明的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其數(shù)據(jù)緩存中間服務(wù)器可以獨(dú)立部署若干個(gè),進(jìn)行負(fù)載均衡,動(dòng)態(tài)分配資源,也可以通過集群部署來保證可用性。
[0009]本發(fā)明的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其數(shù)據(jù)緩存中間服務(wù)器可以通過開源的內(nèi)存數(shù)據(jù)庫(kù),也可以通過自行開發(fā)的基于key-value的內(nèi)存管理模塊來實(shí)現(xiàn)。
[0010]本發(fā)明的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其緩存查詢服務(wù)進(jìn)程可以接受查詢條件變化或者瀏覽器頁(yè)面關(guān)閉觸發(fā)的任務(wù)停止。
[0011]本發(fā)明的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其緩存查詢服務(wù)進(jìn)程可以通過PC或刀片服務(wù)器實(shí)現(xiàn)。
[0012]本發(fā)明的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其查詢結(jié)果數(shù)據(jù)的導(dǎo)出可以直接從數(shù)據(jù)緩存中間服務(wù)器上讀取并導(dǎo)出。
[0013]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
1、實(shí)現(xiàn)一次查詢多次使用,極大的減小海量數(shù)據(jù)查詢和業(yè)務(wù)處理對(duì)數(shù)據(jù)庫(kù)和Web服務(wù)器端的業(yè)務(wù)壓力;
2、前端瀏覽器通過AJAX查詢,Web服務(wù)器端接受查詢?nèi)蝿?wù),通過獨(dú)立進(jìn)程查詢,數(shù)據(jù)緩存至中間數(shù)據(jù)層,Web服務(wù)器從數(shù)據(jù)庫(kù)讀取首頁(yè)數(shù)據(jù)后立即返回前臺(tái)進(jìn)行展現(xiàn),前臺(tái)無(wú)需等待所有數(shù)據(jù)返回再展現(xiàn),提高查詢效率;
3、緩存查詢服務(wù)進(jìn)程可根據(jù)前臺(tái)查詢的條件進(jìn)行動(dòng)態(tài)處理,如查詢條件相同,可直接從緩存當(dāng)中讀取數(shù)據(jù),減少重新查詢的系統(tǒng)開銷,另外緩存查詢服務(wù)進(jìn)程還可以接受前臺(tái)查詢的條件變化或者頁(yè)面關(guān)閉觸發(fā)任務(wù)停止功能,減少中間數(shù)據(jù)緩存對(duì)資源的占用;
4、可以靈活的部署緩存方式,通過獨(dú)立部署多個(gè)中間緩存單元,進(jìn)行負(fù)載均衡,動(dòng)態(tài)分配資源,也可以通過部署集群的方式來保證連續(xù)使用的安全性;
5、用戶的頁(yè)面操作體驗(yàn)增加,通過中間數(shù)據(jù)緩存,在瀏覽器端可以對(duì)數(shù)據(jù)進(jìn)行二次過濾、統(tǒng)計(jì)、匯總,無(wú)需從數(shù)據(jù)庫(kù)再次查詢,從而提高了整個(gè)操作的流暢度和反應(yīng)速度;
6、通過部署于低成本的PC或刀片服務(wù)器上的緩存查詢服務(wù)進(jìn)程,較好的解決數(shù)據(jù)量、操作流暢性和成本間的問題。
【專利附圖】
【附圖說明】
[0014]圖1是現(xiàn)有技術(shù)的關(guān)鍵業(yè)務(wù)服務(wù)部署圖。
[0015]圖2是本發(fā)明的查詢和處理業(yè)務(wù)流程圖。
【具體實(shí)施方式】
[0016]下面通過具體實(shí)施例結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說明。顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0017]如圖2所示,假設(shè)某信息命令監(jiān)控系統(tǒng)中存在海量數(shù)據(jù)(單日清單數(shù)據(jù)50億以上),單個(gè)系統(tǒng)用戶需查詢的月清單記錄數(shù)為8000條左右,用戶查詢清單的業(yè)務(wù)流程包括以下步驟:
(1)、瀏覽器收到業(yè)務(wù)查詢條件,向Web服務(wù)器提交查詢請(qǐng)求;
(2)、Web服務(wù)器檢測(cè)是否已經(jīng)存在相同的業(yè)務(wù)邏輯查詢:如存在,直接向數(shù)據(jù)緩存中間服務(wù)器提交業(yè)務(wù)查詢,后者返回首頁(yè)記錄數(shù)據(jù)經(jīng)Web服務(wù)器封裝送瀏覽器展示;如不存在,通過獨(dú)立進(jìn)程緩存查詢服務(wù)向數(shù)據(jù)庫(kù)服務(wù)器提交業(yè)務(wù)查詢,并將返回的查詢數(shù)據(jù)緩存至數(shù)據(jù)緩存中間服務(wù)器,后者記錄當(dāng)前業(yè)務(wù)邏輯查詢相關(guān)的狀態(tài);
(3)、瀏覽器通過刷新數(shù)據(jù)緩存中間服務(wù)器已經(jīng)緩存的記錄條數(shù)來確認(rèn)數(shù)據(jù)查詢的進(jìn)度,直到所有業(yè)務(wù)數(shù)據(jù)緩存到數(shù)據(jù)緩存中間服務(wù)器,整個(gè)業(yè)務(wù)邏輯查詢流程結(jié)束。
[0018]用戶根據(jù)清單進(jìn)行的二次查詢流程包括以下步驟:
(1)、瀏覽器收到對(duì)查詢業(yè)務(wù)結(jié)果集進(jìn)行二次處理的條件,如要求進(jìn)行指定字段排序、某些特定過濾條件、根據(jù)某些指標(biāo)進(jìn)行最大最小平均等計(jì)算等,向Web服務(wù)器提交查詢請(qǐng)求;
(2)、Web服務(wù)器直接將二次處理的業(yè)務(wù)請(qǐng)求發(fā)至數(shù)據(jù)緩存中間服務(wù)器進(jìn)行處理;
(3)、數(shù)據(jù)緩存中間服務(wù)器將處理結(jié)果返回Web服務(wù)器,由后者封裝送瀏覽器展示;
(4)、瀏覽器收到翻頁(yè)查詢條件,向Web服務(wù)器提交查詢請(qǐng)求;
(5)、Web服務(wù)器直接將二次處理的業(yè)務(wù)請(qǐng)求發(fā)至數(shù)據(jù)緩存中間服務(wù)器進(jìn)行處理;
(6)、數(shù)據(jù)緩存中間服務(wù)器將處理結(jié)果返回Web服務(wù)器,由后者封裝送瀏覽器展示,二次處理流程結(jié)束。
[0019]依照本發(fā)明較佳實(shí)施例所述的中間數(shù)據(jù)緩存,可以通過開源的內(nèi)存數(shù)據(jù)庫(kù),也可以通過自己開發(fā)的基于key-value的內(nèi)存管理模塊來實(shí)現(xiàn)。
[0020]依照本發(fā)明較佳實(shí)施例,通過部署于單個(gè)PC服務(wù)器的6個(gè)基于H2內(nèi)存數(shù)據(jù)庫(kù)的中間緩存集群,滿足PS域信令的查詢和管理功能,響應(yīng)速度極速提高,初次查詢可以10秒以內(nèi)實(shí)現(xiàn),翻頁(yè)在I秒以內(nèi)響應(yīng)。
【權(quán)利要求】
1.一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其特征在于,在整個(gè)業(yè)務(wù)處理流程中引入數(shù)據(jù)緩存中間服務(wù)器,緩存從數(shù)據(jù)庫(kù)中查詢到前臺(tái)展示的數(shù)據(jù),同時(shí)提供了對(duì)查詢數(shù)據(jù)進(jìn)行二次處理的業(yè)務(wù)邏輯處理平臺(tái)和一套完整的數(shù)據(jù)緩存機(jī)制。
2.根據(jù)權(quán)利要求1所述的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其特征在于,所述查詢流程包括以下步驟: (1)、瀏覽器收到業(yè)務(wù)查詢條件,向Web服務(wù)器提交查詢請(qǐng)求; (2)、Web服務(wù)器檢測(cè)是否已經(jīng)存在相同的業(yè)務(wù)邏輯查詢:如存在,直接向數(shù)據(jù)緩存中間服務(wù)器提交業(yè)務(wù)查詢,后者返回首頁(yè)記錄數(shù)據(jù)經(jīng)Web服務(wù)器封裝送瀏覽器展示;如不存在,通過獨(dú)立進(jìn)程緩存查詢服務(wù)向數(shù)據(jù)庫(kù)服務(wù)器提交業(yè)務(wù)查詢,并將返回的查詢數(shù)據(jù)緩存至數(shù)據(jù)緩存中間服務(wù)器,后者記錄當(dāng)前業(yè)務(wù)邏輯查詢相關(guān)的狀態(tài); (3)、瀏覽器通過刷新數(shù)據(jù)緩存中間服務(wù)器已經(jīng)緩存的記錄條數(shù)來確認(rèn)數(shù)據(jù)查詢的進(jìn)度,直到所有業(yè)務(wù)數(shù)據(jù)緩存到數(shù)據(jù)緩存中間服務(wù)器,整個(gè)業(yè)務(wù)邏輯查詢流程結(jié)束。
3.根據(jù)權(quán)利要求1所述的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其特征在于,所述二次處理流程包括以下步驟: (1)、瀏覽器收到對(duì)查詢業(yè)務(wù)結(jié)果集進(jìn)行二次處理的條件,如要求進(jìn)行指定字段排序、某些特定過濾條件、根據(jù)某些指標(biāo)進(jìn)行最大最小平均等計(jì)算等,向Web服務(wù)器提交查詢請(qǐng)求; (2)、Web服務(wù)器直接將二次處理的業(yè)務(wù)請(qǐng)求發(fā)至數(shù)據(jù)緩存中間服務(wù)器進(jìn)行處理; (3)、數(shù)據(jù)緩存中間服務(wù)器將處理結(jié)果返回Web服務(wù)器,由后者封裝送瀏覽器展示; (4)、瀏覽器收到翻頁(yè)查詢條件,向Web服務(wù)器提交查詢請(qǐng)求; (5)、Web服務(wù)器直接將二次處理的業(yè)務(wù)請(qǐng)求發(fā)至數(shù)據(jù)緩存中間服務(wù)器進(jìn)行處理; (6)、數(shù)據(jù)緩存中間服務(wù)器將處理結(jié)果返回Web服務(wù)器,由后者封裝送瀏覽器展示,二次處理流程結(jié)束。
4.根據(jù)權(quán)利要求1所述的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其特征在于,所述數(shù)據(jù)緩存中間服務(wù)器可以獨(dú)立部署若干個(gè),進(jìn)行負(fù)載均衡,動(dòng)態(tài)分配資源,也可以通過集群部署來保證可用性。
5.根據(jù)權(quán)利要求1所述的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其特征在于,所述數(shù)據(jù)緩存中間服務(wù)器可以通過開源的內(nèi)存數(shù)據(jù)庫(kù),也可以通過自行開發(fā)的基于key-value的內(nèi)存管理模塊來實(shí)現(xiàn)。
6.根據(jù)權(quán)利要求1所述的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其特征在于,所緩存查詢服務(wù)進(jìn)程可以接受查詢條件變化或者瀏覽器頁(yè)面關(guān)閉觸發(fā)任務(wù)停止功倉(cāng)泛。
7.根據(jù)權(quán)利要求1所述的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其特征在于,所緩存查詢服務(wù)可以通過PC或刀片服務(wù)器實(shí)現(xiàn)。
8.根據(jù)權(quán)利要求1所述的一種基于Web架構(gòu)下海量數(shù)據(jù)查詢和二次處理的方法,其特征在于,其查詢結(jié)果數(shù)據(jù)的導(dǎo)出可以直接從數(shù)據(jù)緩存中間服務(wù)器上讀取并導(dǎo)出。
【文檔編號(hào)】G06F9/50GK103995807SQ201310051253
【公開日】2014年8月20日 申請(qǐng)日期:2013年2月16日 優(yōu)先權(quán)日:2013年2月16日
【發(fā)明者】趙子緒 申請(qǐng)人:長(zhǎng)沙中興軟創(chuàng)軟件有限公司