[發明專利]一種構建Hbase二級索引表方法在審
| 申請號: | 201911403256.6 | 申請日: | 2019-12-31 |
| 公開(公告)號: | CN111198886A | 公開(公告)日: | 2020-05-26 |
| 發明(設計)人: | 胡峻;朱慧君 | 申請(專利權)人: | 浙江華云信息科技有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/2455 |
| 代理公司: | 浙江翔隆專利事務所(普通合伙) 33206 | 代理人: | 王曉燕 |
| 地址: | 310012 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 構建 hbase 二級 索引 方法 | ||
本發明公開了一種構建Hbase二級索引表方法,涉及數據庫領域。Hbase本身只提供基于行鍵和全表掃描的查詢,進行非行鍵的查詢時需要對全表掃描,這樣的查詢效率低下。本發明步驟包括:hbase表上給原表建立索引表;對于原表的每條記錄,在索引表上生成相應的索引記錄,其索引記錄的行鍵包括分區鍵、索引值、連接符和原表主鍵,所述的分區鍵為索引記錄所在region的起始鍵字段,分區鍵作為索引表主鍵,分區鍵采取隨機散列方式再結合索引表預分區;對分區值進行預定義;建立索引表時預先確定索引分區值;建立索引表時對索引表按照索引分區值進行預分區。可有效提升并行性能,提高查詢效率。
技術領域
本發明涉及數據庫領域,尤其涉及一種構建Hbase二級索引表方法。
背景技術
目前,業界對于Hbase的二級索引已提出了多種方案。索引表在創建時只有一個分區時,會導致大量的訪問集中單個region上,另外在寫比較頻率的場景下,隨著數據增長越來越快,split次數也會增多,而split是比較耗時耗資源的。若預分區一開始就預建好了,但由于索引表主鍵的前綴往往是連續相同且順序增大,這樣還是會導致大量的讀,寫或其他操作訪問集群中的一個或少數個節點,會造成某個熱點region所在的單個機器超出自身承受能力,引起性能下降甚至region不可用。
發明內容
本發明要解決的技術問題和提出的技術任務是對現有技術方案進行完善與改進,提供一種構建Hbase二級索引表方法,以提升操作訪問效率為目的。為此,本發明采取以下技術方案。
一種構建Hbase二級索引表方法,包括以下步驟:
1)hbase表上給原表建立索引表;
2)對于原表的每條記錄,在索引表上生成相應的索引記錄,其索引記錄的行鍵包括分區鍵、索引值、連接符和原表主鍵,所述的分區鍵為索引記錄所在region的起始鍵字段,分區鍵作為索引表主鍵;
3)對分區值進行預定義;
4)建立索引表時預先確定索引分區值;
5)建立索引表時對索引表按照索引分區值進行預分區。
實現了二級索引表的建立,通過二級索引表,在寫數據時,可以提升并行性能,提高訪問效率。
作為優選技術手段:步驟2)中,分區鍵采取隨機散列方式的一種分布,再結合索引表預分區。采取預分區和主鍵的散列設計,可以很好地解決了二級索引的數據傾斜和熱點問題,在寫數據的時候,能均等地命中這些預分區,更好地提升并行性能。
作為優選技術手段:步驟2)中,若原表有分區鍵,可以獲取原表的分區鍵作為起始鍵,這樣原表記錄和索引記錄具有相同主鍵前綴,則會分配到同一個regionserver上。取原表的分區鍵做為索引表的分區鍵,當通過非鍵值條件來訪問索引表和原表時,可以減少一次rpc。
作為優選技術手段:步驟2)中,取原表行鍵值的哈希取模獲得索引鍵分區值。實現原表主鍵哈希取值。
作為優選技術手段:步驟2)中,索引值哈希取模獲得索引鍵分區值。實現索引值哈希取值。
作為優選技術手段:步驟2)中,所述的索引值由單個字段或者多個字段組成,多個字段之間由非打印字符連接而成。實現索引值定義結構。
作為優選技術手段:步驟3)中,采取ASCII字符順序的字符作為分區鍵值。可有效實現分區鍵取值。
作為優選技術手段:使用隨機函數獲取0~索引表預分區數的范圍內的一個隨機數為數組地址,根據地址取到相應字符做為分區鍵。實現散列隨機方式。
作為優選技術手段:取其指定字段的哈希值再對索引表的預分區數取模的結果為數組地址,根據地址取到相應字符做為分區鍵。實現
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江華云信息科技有限公司,未經浙江華云信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911403256.6/2.html,轉載請聲明來源鉆瓜專利網。





