[發明專利]一種基于HFile的HBase二級索引更新方法及系統有效
| 申請號: | 201510813149.6 | 申請日: | 2015-11-20 |
| 公開(公告)號: | CN105404676B | 公開(公告)日: | 2018-08-31 |
| 發明(設計)人: | 程學旗;陳芳蓉;張敬亮 | 申請(專利權)人: | 中國科學院計算技術研究所 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京律誠同業知識產權代理有限公司 11006 | 代理人: | 祁建國;田景宜 |
| 地址: | 100190 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 二級索引 解析 源表數據 更新 時間點 延遲 數據庫刷新 目標索引 索引更新 索引數據 文件存儲 影響用戶 用戶操作 用戶數據 解耦 源表 源碼 監視 維護 | ||
本發明公開了一種基于HFile的HBase二級索引更新方法及系統,該方法包括:解析步驟,監視HBase數據庫刷新HFile文件的過程,當針對目標索引列產生了用戶操作并生成有HFile文件時,解析該HFile文件并據以更新二級索引表;延遲步驟,在到達HFile文件的compaction操作的啟動時間點時,判斷該compaction操作所對應的HFile文件是否已經執行該解析該HFile文件的步驟,如果否,延遲該compaction操作的啟動時間點,如果是,執行該compaction操作。本發明選擇基于HBase文件存儲中的HFile這一粒度層次來確定索引更新,不需要大幅度修改HBase源碼,不需要維護多余的源表信息,在實現上與用戶數據操作異步,不影響用戶的時間體驗,將索引數據更新維護與源表數據操作解耦。提高了HBase源表數據與二級索引表的同步程度。
技術領域
本發明涉及大數據存儲與處理中SQL解析以及信息索引和搜索領域,特別是涉及一種基于HFile的HBase二級索引更新方法及系統。
背景技術
在數據高速發展的時代,分布式體系成為了很重要的角色。在大數據發展的背景下,分布式集群,分布式數據庫,分布式文件系統都成為受人們關注的焦點。在這個動力趨勢下,Hadoop集群成為較成熟的分布式系統。分布式數據庫HBase在Hadoop生態系統中正在不斷完善,HBase不同于傳統的數據庫,它是一個適用于非結構化數據存儲的數據庫,具有高擴展性、列存儲、可伸縮、能實時讀寫大數據的特點,因此被很多大公司使用,HBase數據庫依據有很好的易用性及鍵值的靈活處理得到廣泛的歡迎。
和傳統的基于行的關系型的數據庫不同,HBase應用基于列的數據存儲模型,準確的說,HBase是一種稀疏的面向數據的列存儲的分布式數據庫,HBase源數據表的RowKey按照字典排序,HBase源數據表的Region按照HBase的RowKey設置的分割點進行分片,通過這種方式實現數據的組織。由此,HBase數據庫中的RowKey實際上充當著數據表的一級索引,基于索引檢索數據只能單純地依靠RowKey。為了支持多條件查詢,開發者需要將所有可能作為查詢條件的字段拼接到RowKey中,無論怎么設計,單一的RowKey固有的局限性決定了它不能有效的支持多條件查詢。RowKey只能針對條件中含有其首字段的查詢給予令人滿意的性能支持,在查詢其他字段時,表現就差強人意了。在極端情況下某些字段的查詢性能可能會退化為全表掃描的水平,這是因為字段在RowKey中的地位是不等價的,它們在RowKey中的排位決定了它們被檢索時的性能表現,排序越靠前的字段在查詢中越具有優勢,特別是首位字段具有特別的先發優勢,如果查詢中包含首位字段,檢索時就可以通過首位字段的值確定RowKey的前綴部分,從而大幅度地收窄檢索區間,如果不包含則只能在全體數據的RowKey上逐一查找,由此可以想見兩者在性能上的差距。
除此之外,單一的依靠RowKey來支持定位目標數據已經遠遠不能滿足實際工作中的需求,當用戶的搜索目標列并不僅局限于主鍵RowKey的信息時,此時需要找到所需要的目標數據往往需要進行全表掃描,而全表掃描所需要的時間開銷與表格的大小成正比,這對用戶來說,通常是無法忍受。因此如何快速的定位到目標數據行成為HBase在實際檢索應用中的一個很大的功能缺陷和性能瓶頸。此時需要使用到一種特殊的索引,能在給定的列中存儲有關重要的詞及位置的信息,使用這些信息可以快速進行全文查詢,搜索包括特定詞或詞組的行,實現全文索引功能。為了使用全文索引功能,目前來說,通常是使用索引引擎對HBase源數據表中的數據建立二級索引表,再通過索引搜索功能在二級索引表中得到對應的HBase主鍵信息,進而定位到目標數據行,也就是說,當HBase中存儲的源數據表需要更新時,譬如,用戶刪除/增加/修改數據,所對應的二級索引的數據也應該相應的發生變化。
如何根據HBase源數據表的變化來更新二級索引表目前存在幾種不同的方法,這些方法從更新時機上主要分為實時更新和非實時增量更新,從更新方法上來說,主要有基于HBase提供的coprocessor機制以及基于HBase的replication機制,這兩種方法的基本原理如下。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算技術研究所,未經中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510813149.6/2.html,轉載請聲明來源鉆瓜專利網。





