HBase 如何建立二级索引

现有HBase rowkey设计为:roleid+gid+date+"-"+timestamp, 解释如下:
 rowkey的设计为:roleid(变化的前缀,保证入库效率)+gid+日期(例如20161009)+"-"(方便顺序查询)+"时间戳(保证了id的唯一性)"
这种设计使得按roleid和时间范围查询时非常方便,但是还有一种需求是按userid和时间范围,userid和roleid的关系是一个user可以有多个role,请问这种是否可以通过建立二级索引实现呢? 而不是再设计一种rowkey为:userid+gid+date+"-"+timestamp,造成值的重复存储。
 
 
已邀请:

mopishv0 - 高级开发工程师@美团

赞同来自: fish

社区文档的方案是双写;
大多数初级解决方案是用协处理器实现双写,对写入透明;
华为的方案是基于协处理器,构造二级索引列族(索引和数据位置相同),对写入透明同时保证索引和数据位置相同,节省RPC;
中科院的方案在StoreFile粒度做了更多的源码修改,实现了二级索引;

要回复问题请先登录注册