zoukankan      html  css  js  c++  java
  • HBase多条件筛选查询方案

    网上看到的,觉得很有用 ,摘下来,感谢

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

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

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

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

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

  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/java-synchronized/p/8341772.html
Copyright © 2011-2022 走看看