关于使用hbase进行多维度条件实时查询的方案调研。

来源:互联网 发布:阿里云开通码 编辑:程序博客网 时间:2024/05/22 09:45
 
关于使用hbase进行多维度条件实时查询的方案调研。
1.MapReduce方案  
优点:并发批量构建Index 
缺点:不能实时构建Index  
2.ITHBASE方案 
    缺点:需要重构hbase,几年没有更新。 
3.IHBASE方案 
    缺点:需要重构hbase。 
4.Coprocessor方案 
   华为的HBase二级索引采用此方案(hindex 代码开源)。
    1)、索引和数据分别放在不同表里;
  2)、所有的运算逻辑全都放在服务端;
  3)、需要修改HBase源码,侵入性大
  4)、 查询时无需指定,即可自动使用最优索引
    缺点:代码很复杂,代码量非常多。一下子要弄明白原理可能比较困难。hindex和公司的HBase版本不兼容性
5.Solr+hbase方案
   缺点:对Solr不熟悉 
6.CCIndex   
   缺点: 如存储开销比较大,尤其是当索引列比较多的时候,空间开销会更大;索引更新代价比较高,会影响系统的吞吐量;索引创建以后,不能够动态增加或修改。
7.360的hbase二级索引
    360二级索引的特点如下:
  1)、索引和Rowkey在同一个表里;
  2)、支持多范围与操作优化;
  3)、支持索引重建
    缺点:没有开源,需要按照他的思想去实现,原理不是太清楚,只明白一点点,按照这个思想来重新搭建也可能非常耗时间。
8.phoenix的二级索引
    好处:开源,自带二级索引。
现状:公司的hbase集群,资源有限。目前主要是提供给dmp在使用。刚好能撑住目前的服务。
     偶尔有压力的时候,还会挂掉几台机器。
     按照目前的需求,只有两条方案:一个是按照上面的思想自己开发一个hbase的二级索引工具,另外一个是使用phoenix自带二级索引。
     依照目前的hbase的集群使用情况,就算自己开发出来了二级索引,估计集群资源不够用的前提下,也发挥不出二级索引的速度优势。
     所以只能暂且在phoenix的现有资源上优化我们的程序性能,尽量减少检索时间。    
 
 ====================================================================================================================================
 ===============================================新表=====================================================================================
 
 
1 0
原创粉丝点击