使用 Solr 查询 HBase

Posted

技术标签:

【中文标题】使用 Solr 查询 HBase【英文标题】:Using Solr to Query HBase 【发布时间】:2013-02-07 19:52:01 【问题描述】:

我有一个数据仓库问题,需要查询一个大型数据集。为了这个例子,假设一个典型的州会有 3000 万用户,每个用户都有活动统计信息。理想情况下,我可以购买数据仓库工具(Vertica、Infobright 等),但这不在卡片或预算之内。

现在我正在考虑使用 Solr 来查询 HBase。虽然我相信 HBase 可以扩展以满足需求,但我担心 Solr。它作为搜索引擎进行了优化,即结果的第一页在最后一页之前返回,并且不支持诸如数据库游标之类的东西。到目前为止的测试表明,从 Solr 获得大量结果集的速度比我希望的要慢。例如,比较在 Infobright 社区版中检索一半可用用户(最终返回 500 mb 数据)的查询在一分钟内完成,而 Solr 则需要 12 分钟。

除了 Solr 之外,还有什么更适合查询这些数据的吗?是否有任何有助于批量数据输入和输出的优化?

【问题讨论】:

您在设置中需要 Solr 做什么?是否需要将 HBase 中的所有数据复制到 Solr 中? 很多这些数据是文本,我希望 Solr 可以用于强大的查询语言 Solr 的速度很大程度上取决于您存储数据的方式(即存储与索引)。它更多地用于“人类”查询。您可能想考虑直接使用以下方式访问 HBase:community.jaspersoft.com/wiki/jaspersoft-hbase-query-language 像 Jaspersoft 查询语言这样的东西可能是一个很好的解决方案。 BSD/MIT/Apache 许可证有什么类似的吗? 【参考方案1】:

我知道这有点晚了,但是......

根据您的搜索要求,Solr 可能是一个不错的选择。请记住,您很可能不需要索引 HBase 中的所有内容。您可以选择某些领域吗?部分文字?如果您已经将这些内容存储在 HBase 中,那么您肯定不需要将这些内容存储在 Solr 中。

Solr 是一个出色的二级索引系统,可以放在 HBase 之上,如果您需要,Solr 还具有一些出色的文本分析功能。

您还应该看看 Solr 的主要竞争对手之一 ElasticSearch。

【讨论】:

【参考方案2】:

看看SolBase 和Lily - 两个结合 Solr 和 HBase 后端的实现

【讨论】:

以上是关于使用 Solr 查询 HBase的主要内容,如果未能解决你的问题,请参考以下文章

基于Solr的HBase多条件查询测试

基于Solr的HBase多条件查询测试

Hbase+Solr实现二级索引提供高效查询

HBASE+Solr实现详单查询--转

Hbase到Solr数据同步及Solr分离实战

使用HBase Indexer建立二级索引(整合最新版本的HBase1.2.6及Solr 7.2.1)