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