提高HBase查询性能

时间:2014-03-03 15:07:23

标签: solr indexing elasticsearch hbase real-time

我有一个大约5亿行的巨大HBase表,大约有100列(每行不同)。

我想尽可能快地根据任何列限定符值查询此数据。

我知道当我们知道ROW-KEY时HBase已针对快速读取进行了优化,但我想根据不同的列值进行查询。但是应用列过滤器(使用JAVA API)会导致全表扫描,从而降低系统速度

我有什么选择?

  • INDEXING:每行中的列都会发生变化。我还可以做索引吗?
  • 我是否继续使用HBase存储数据?或者将它与Solr或ElasticSearch一起使用?
  • 基于任何可能有十亿行的列值,随机查询可以获得什么样的性能?

欢迎任何其他建议。

1 个答案:

答案 0 :(得分:1)

在Hbase中从行键获取数据的速度很快,但由于未对值进行索引,因此使用值过滤器进行查询是非常有用的。如果要编制索引的列数很少,则可以考虑反向表索引。

但是如果你想要更多东西,比如多标准查询,你应该看看elasticsearch并使用它来存储你的列上的索引,并将你的数据保存在hbase中。不要忘记在创建索引时使用“_source”禁用源存储:{“enabled”:false},所有数据都已经在hbase中,不要浪费你的硬盘:)