我有一个庞大的HBase表,大约有五十亿行,其中包含约100列(每行不同)的数据。
我想根据任何列限定符值尽快查询此数据。
我知道当我们知道ROW-KEY时HBase已针对快速读取进行了优化,但是我想基于不同的列值进行查询。但是,应用列过滤器(使用JAVA API)会导致全表扫描,这会减慢系统速度
我有什么选择?
欢迎其他任何建议。
最佳答案
在Hbase中,从行键获取数据的速度很快,但是由于未对值进行索引,因此使用值过滤器进行查询很容易。如果要索引的列数很小,则可以考虑使用反向表索引。
但是,如果您想要更多事情,例如多条件查询,则应该看看elasticsearch并使用它来仅将索引存储在列中,并将数据保留在hbase中。创建索引时,请不要忘记使用“_source”:{“enabled”:false}禁用源存储,所有数据已经在hbase中,不要浪费HDD :)
关于solr - 提高HBase查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22150191/