HBase多条件筛选查询方案

本文探讨了在HBase中实现多条件查询的两种方法:使用Coprocessor创建二级索引和利用Solr服务器建立二级索引。通过对比分析,作者更倾向于采用Solr方案,因其提供了更好的查询灵活性及性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近的项目需要使用Hbase做实时查询,由于Hbase只支持一级索引,也就是使用rowkey作为索引查询,所以对于多条件筛选查询的支持不够,在不建立二级索引的情况下,只能使用Hbase API中提供的各种filter过滤器进行筛选,感觉查询效率不太理想,于是考虑建立二级索引的方案。

    经过google学习网上前辈们的经验,暂时找到两种可用的方案:

  1. 使用Hbase协处理器Coprocessor在写入数据时,创建二级索引表,并将每条数据的索引写入二级索引表中,查询时先根据筛选条件查询二级索引表,获取相对应的一级索引rowkey,然后根据rowkey去数据表中获取查询结果。
  2. 使用solr搜索应用服务器,在写入数据时,在solr中建立二级索引(甚至可以建立全文索引),查询时先根据筛选条件获取一级索引rowkey的集合,然后根据rowkey去数据表中获取查询结果。 

    对两种方案进行了比较发现,第一种方案中存在的问题是无法直接获取数据记录总数(要获取记录总数,需要在写入数据时单独维护一个计数器,并一直更新记录总数),对于分页显示的需求不容易满足;而solr服务器的查询方式类似于SQL语句,支持各种查询条件过滤、限定查询范围、页数以及直接获取记录总数,所以我比较倾向于第二种方案。

    关于两种方案的效率问题,目前还在测试中,后面会陆续写出第二套方案的详细部署以及代码。

    第一次开博客,先写这么多吧,下班!

转载于:https://www.cnblogs.com/bxljoy/p/3849359.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值