HBase的二级索引的设计
1. 协处理器coprocessor方案。 原理就是自定义协处理器,实现`双写`,就是写主表的时候,同时写索引表[这里这个索引表是根据业务对查询的需求建立的]。 比如我们要查询的主表是A, 里面有RowKey,还有一列ColumnA. 如果想对ColumnA这一列建立索引,就自定义一个协处理器(观察者模式),当我们写入A表中一条数据,比如 行键rowkey(123),cloumnA列值:abc,这时协处理在索引表(自己建立,比如A_INDEX)中插入一条记录 行键为刚才列A的值abc,列值为主表的rowkey(123). 查询的时候,先查索引表得到rowkey,然后根据rowkey在主表中查。
2. ES 方案,将想要构建的二级索引的字段值存储到ES中,查询时先去ES根据条件查到rowkey,然后根据rowkey再去hbase查数据。
3. Phoenix 方案。 Phoenix构建构建索引的方式,本质也在HBase中建立索引表。只不建表的过程,索引维护的过程,Phoenix自己内部实现,暴露给用户的只是SQL接口。
# 其实在HBase构建二级索引,万变不离其宗,最终的方向都是构建索引字段与行键的映射关系,先更加索引表查行键,在根据行键,查最终数据。
更多关于大数据培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。