二级索引

二级索引的本质就是建立各列值与行键之间的映射关系

Hbase的局限性:

  HBase本身只提供基于行键和全表扫描的查询,而行键索引单一,对于多维度的查询困难。

 

所以我们引进一个二级索引的概念

常见的二级索引:

HBase的一级索引就是rowkey,我们只能通过rowkey进行检索。如果我们相对hbase里面列族的列列进行一些组合查询,就需要采用HBase的二级索引方案来进行多条件的查询。

  1. MapReduce方案

  2. ITHBASE(Indexed-Transanctional HBase)方案

  3. IHBASE(Index HBase)方案

  4. Hbase Coprocessor(协处理器)方案

  5. Solr+hbase方案

  6. CCIndex(complementalclustering index)方案

 

二级索引的种类

  1、创建单列索引
​
  2、同时创建多个单列索引
​
  3、创建联合索引(最多同时支持3个列)
​
  4、只根据rowkey创建索引

单表建立二级索引

1.首先disable ‘表名’
2.然后修改表
​
alter 'LogTable',METHOD=>'table_att','coprocessor'=>'hdfs:///写好的Hbase协处理器(coprocessor)的jar包名|类的绝对路径名|1001'
​
3. enable '表名'

二级索引的设计思路

二级索引的本质就是建立各列值与行键之间的映射关系
​
如上图1,当要对F:C1这列建立索引时,只需要建立F:C1各列值到其对应行键的映射关系,如C11->RK1等,这样就完成了对F:C1列值的二级索引的构建,当要查询符合F:C1=C11对应的F:C2的列值时(即根据C1=C11来查询C2的值,图1青色部分)
​
其查询步骤如下:
​
1. 根据C1=C11到索引数据中查找其对应的RK,查询得到其对应的RK=RK1
​
2. 得到RK1后就自然能根据RK1来查询C2的值了 这是构建二级索引大概思路,其他组合查询的联合索引的建立也类似。
posted @ 2022-06-23 22:43  呆滞的猪蹄  阅读(1164)  评论(0编辑  收藏  举报