项目中要用到HBase的二级索引,所谓的二级索引,就是对除了RowKey之外的其他列进行索引,因为HBase本身只支持Rowkey的索引,如果要以其他列的数据为约束进行查询,就需要我们做一点点小工作了,即建立二级索引。

在HBase中建立二级索引的思想就是: 新建一个数据表即索引表,以需要建立索引的列为主键,把其他需要查询的数据存储在该表中,或者存储对应的原数据表主键,最后需要使用此索引的时候,就来到这个表里边进行查询原数据或者主键,如果是主键的话再回到原表中根据主键查询,最终得到结果 。该索引表也可以是密集的,也可以是稀疏的,索引表中存储原始数据还是原主键就看个人需求,平衡空间和时间上的考量。

华为曾经在2013年开源了一个项目Huawei-hadoop/index,不过最近两年都没有更新过了,应该是被停掉了,因为现在有很多例如Phoenix , Pig, Hive等可以利用,没必要自己花精力去维护,但是当时提出该索引的时候可是引起了不小的轰动,同时有两篇PPT,可以帮助理解二级索引的工作原理,有兴趣的读者可以下载研究,总好的过看我写的这些字!

下一篇写Phoenix 的二级索引!