[發明專利]一種基于分布式關系?對象映射處理的大數據查詢的方法有效
| 申請號: | 201310690335.6 | 申請日: | 2013-12-16 |
| 公開(公告)號: | CN103678609B | 公開(公告)日: | 2017-05-17 |
| 發明(設計)人: | 王鵬堯;崔建業;楊風雷;黎建輝 | 申請(專利權)人: | 中國科學院計算機網絡信息中心 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京君尚知識產權代理事務所(普通合伙)11200 | 代理人: | 余長江 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 分布式 關系 對象 映射 處理 數據 查詢 方法 | ||
技術領域
本發明涉及一種大數據存儲和查詢的方法,尤其涉及一種使用分布式Hibernate架構處理大數據存儲和查詢的方法,屬于網絡技術領域。
技術背景
進人新世紀以來,隨著網絡的發展和普及,應用產生和需要處理的數據量越來越大,以Google每天處理的數據為例,2004年其每天需要處理100TB的數據(Jeffrey Dean and Sanjay Ghemawat.MapReduce:Simplified data processing on large clusters.In Proceedings of the6th Symposium on Operating System Design and Implementation(OSDI2004),137-150,2004),到2008年其每日數據量就達到了20PB(Jeffrey Dean and Sanjay Ghemawat.MapReduce:Simplified data processing on large clusters.Communications of the ACM,51(1):107-113,2008),由此可知,隨著數據的爆炸式增長,現在數據庫系統的工作負載日益增大。因此并行處理是處理海量數據的必由之路。
Hibernate是Java開發者常用的關系-對象映射框架,它可以方便的把關系型數據庫中的數據映射到Java對象上,通過Hibernate Session會話對象,開發者就可以以對象的方式操作數據并獲得查詢結果。目前很多Java項目,都以Hibernate作為其底層的數據處理層,來對數據庫進行處理。
Hibernate是針對單數據庫而設定的開發工具,在單數據機器節點上,當一個表的數據量增大到千萬級別時,數據的查詢處理時間就變得比較耗時,雖然采用數據庫分區、增加索引的手段,可以將數據分散到多個文件中進行存儲,通過索引文件加快查詢速度,從而一定程度上解決這個問題,但是這種解決方案有兩個缺點:
(1)當數據庫的數據量增大到一定的數量級后,會超過單個數據庫處理能力的極限,從而導致數據存儲無法實現。
(2)當以非索引字段或者非分區字段來對數據進行查詢時,數據庫仍要檢索所有分區文件中的數據,才能得到查詢結果,查詢速度又將變得很慢。
采用分布式的方式來改進Hibernate,使用Hibernate Session并行化的查詢一個分布式的數據庫系統,是使用Hibernate處理大數據量數據計算的一種可行的解決思路,雖然Apache社區推出了Hibernate Shard插件,通過使用數據劃分接口來對數據進行分割從而將一個大的數據集分別存儲在多個數據節點上,并解決了簡單的Select查詢、Update查詢等問題,但是,由于Shard項目在處理查詢時,默認是經過會話選擇策略串行的處理數據節點查詢,所以當處理Order by、Join時,效率很低,而且由于默認會話選擇策略在處理Sum和Avg時只選擇一個Session,所以處理結果只能代表單表節點的處理結果,不是所有節點的結果總集合,因此Shard項目在實際使用中仍然面對很多問題。
發明內容
針對大數據在關系型數據庫中的分布式存儲、查詢問題,本發明的目的在于提供一種基于Hibernate-Session分布式處理的解決方法。本發明使用分布式管理Hibernate Session的方法,提出了一種分布式Hibernate架構、根據Hadoop的MapReduce的思路:將大數據集分散到多個處理節點、然后再對處理節點的結果集進行歸約(Tom White.Hadoop:The Definitive Guide,30-31,2011),提出了Order by、Join等復雜查詢在該分布式Hibernate架構下的解決方案。
本發明的技術方案為:
一種基于分布式關系-對象映射處理的大數據查詢的方法,其步驟為:
1)選取m個數據處理節點,針對每一數據處理節點構建一Hibernate Session節點,得到一分布式Hibernate架構,并生成一Session資源隊列;
2)在所述分布式Hibernate架構中設置一配置文件,所述配置文件包括表類型屬性,以及每一類型表對應的存儲策略和路由策略;其中,所述表類型屬性包括S表和L表;將S表在每一所述數據處理節點備份,將L表分塊存儲到m個所述數據處理節點;L表為數據量大于或等于設定閾值的表,S表為數據量小于設定閾值的表;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算機網絡信息中心,未經中國科學院計算機網絡信息中心許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310690335.6/2.html,轉載請聲明來源鉆瓜專利網。





