[發明專利]一種分布式環境下避免全局排序的海量數據分頁查詢方法有效
| 申請號: | 201710169498.8 | 申請日: | 2017-03-21 |
| 公開(公告)號: | CN107103032B | 公開(公告)日: | 2020-02-28 |
| 發明(設計)人: | 王學志;周園春;黎建輝;王逢陽 | 申請(專利權)人: | 中國科學院計算機網絡信息中心 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/2453;G06F16/2455;G06F16/2458 |
| 代理公司: | 北京君尚知識產權代理有限公司 11200 | 代理人: | 邱曉鋒 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 環境 避免 全局 排序 海量 數據 分頁 查詢 方法 | ||
本發明涉及一種分布式環境下避免全局排序的海量數據分頁查詢方法。該方法包括索引構建和分頁檢索。其中索引構建方法包括:1)根據待排序的不同屬性,將數據復制成相應的份數;2)根據待排序的屬性對相應的每一份數據進行排序,并將排序后的每一份數據保存在不同的文件夾;3)將每一份數據拆分成多個數據文件,每個數據文件分配一個唯一的索引編號IndexNo;4)對每一個數據文件添加一列,該列的值與數據文件的索引編號IndexNo相同;5)根據數據文件構建索引文件,索引文件的每一條記錄描述一個數據文件的信息。針對排序列分頁檢索,本發明可以避免全局排序和大量數據結果收集;針對條件列過濾,本發明可以避免全局數據掃描。
技術領域
本發明涉及數據庫和大數據領域,具體涉及一種基于分布式海量數據的檢索及分頁方法。
背景技術
分頁查詢一般需要兩個結果,其一是根據查詢條件命中的查詢條數Count,Count用來計算總頁數,為頁碼導航欄提供數據;其二是當前頁(PageNo)數據,該數據一般直接反饋給用戶(例如顯示到Web平臺)。在應用程序中對數據分頁查詢的傳統處理方法是一次性從數據庫中檢索出所有符合條件的結果,并將結果數據從數據庫服務器端傳輸到客戶端緩存,然后客戶端通過應用程序內部編程對查詢的結果進行分頁顯示。在大數據環境下該種方式存在兩個問題。第一個問題是,如果查詢結果數據量很大,很難緩存所有數據結果。第二個問題是,在利用數據庫查詢時,如果分頁查詢必須進行排序(Order by)操作,這導致計算非常緩慢。
大數據指的是數據規模龐大,通常達到PB級以上級別。在大數據下分頁查詢面臨三個問題。其一,在利用集群進行計算時,例如利用Spark的OrderBy操作對數據進行排序,要花費大量時間。其二,在查詢結果很多時,要從集群的各個節點收集數據,這導致非常頻繁的網絡IO和磁盤IO,計算緩慢,很難到達實時查詢。其三,查詢結果集龐大,全部緩存到內存很困難。同時,大量用戶對不同查詢條件在匹配大量數據時,大量用戶和每個用戶查詢結果都過大,因此很難全部緩存到內存中。
Spark是基于內存的分布式并行計算框架,誕生于2009年,由加州大學伯克利分校AMP實驗室開發,現在是Apache軟件基金會旗下的頂級開源項目。Spark抽象出了彈性分布式數據集RDD(Resilient Distributed Datasets),它是一種基于內存的集群計算容錯抽象。Spark基于RDD的內存計算擁有Hadoop MapReduce計算模型的所有優點,但不同于Hadoop MapReduce的是中間結果和最終結果不需要保存到HDFS,可以直接保存到內存中;海量數據很難在數據庫中查詢,利用Spark可以進行高效的分布式計算,因此本發明的實施階段采用Spark技術。
發明內容
針對大數據在分布式下分頁查詢時命中數據量大,每次查詢需要全局排序和從集群的各個機器上收集大量結果數據問題。本發明設計了一種基于分布式環境下數據查詢的索引結構和分頁檢索方法,該方法可以很好的解決上述問題。針對排序列(相當于在數據庫中對該列OrderBy操作)分頁檢索,該方法可以避免全局排序和大量數據結果收集;針對條件列過濾(相當于數據庫where語句中的條件列語句),該方法可以避免全局數據掃描。
本發明采用的技術方案如下:
一種分布式環境下海量數據的索引構建方法,其步驟包括:
1)根據待排序的不同屬性,將數據復制成相應的份數;
2)根據待排序的屬性對相應的每一份數據進行排序,并將排序后的每一份數據保存在不同的文件夾;
3)將每一份數據拆分成多個數據文件,拆分規則是:從第一條數據開始每M條數據保存成一個數據文件,每個數據文件分配一個唯一的索引編號IndexNo,索引編號IndexNo從1開始依次累加分配;
4)對步驟3)形成的每一個數據文件添加一列,該列的值與數據文件的索引編號IndexNo相同;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算機網絡信息中心,未經中國科學院計算機網絡信息中心許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710169498.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種云計算中安全最近鄰檢索方法
- 下一篇:冷啟動用戶的偏好預測方法和裝置





