Hbase二級索引

2021-10-08 07:18:46 字數 1206 閱讀 3402

hbase的查詢都是通過rowkey(要把多條件組合查詢的字段都拼接在rowkey中顯然不太可能),或者全表掃瞄再結合過濾器篩選出目標資料(太低效),所以通過設計hbase的二級索引來解決這個問題。

多個查詢條件構成了多維度的組合查詢,需要根據不同組合查詢出符合條件的資料。

例如:

按照電影維度查詢資料適合,但是按照uid就不適合 , 使用二級索引分兩步查詢實現高效獲取資料,因為兩次都是通過rowkey查詢的資料

思路 在插入資料的時候 , 如果遇到uid屬性 , 那麼就在二級索引表中插入 k: uid 和 v:主表的rowkey

/**

* 使用協處理器為電影表建立索引表

* 目的是為了快速的按照uid查詢資料

* @author 多易教育-行哥

* */

public class demo implements regioncoprocessor , regionobserver

/*** 在put之前執行的方法

* 操作put物件 獲取put的值

*/@override

public void preput(observercontextc, put put, waledit edit, durability durability)

throws ioexception

}} }

// 開啟region

@override

public void start(coprocessorenvironment env) throws ioexception

// 關閉

示例:新增協處理器:

刪除協處理器:

HBase 實現二級索引

使用整合mapreduce的方式建立hbase索引。主要的流程如下 1.11.2 獲取rowkey和指定欄位名稱和字段值 1.3建立put例項,value rowkey,rowkey columnname columnvalue 1.4使用identitytablereducer將資料寫入索引表 類...

hbase 索引概念 含二級索引

問題 假設 rowkey設計 時間 使用者id 20200101 001 20200101 002 20200102 002 20200103 003 根據日期和使用者id 需求 查詢002所有的資料 全表掃瞄 只要查詢的 條件不是rowkey的字首,就只能走全表掃瞄 解決 rowkey useri...

HBase二級索引的設計

摘要 最近做的乙個專案涉及到了多條件的組合查詢,資料儲存用的是hbase,恰恰hbase對於這種場景的查詢特別不給力,一般hbase的查詢都是通過rowkey 要把多條件組合查詢的字段都拼接在rowkey中顯然不太可能 或者全表掃瞄再結合過濾器篩選出目標資料 太低效 所以通過設計hbase的二級索引...