我有一个大约5亿行的巨大HBase表,大约有100列(每行不同)。
我想尽可能快地根据任何列限定符值查询此数据。
我知道当我们知道ROW-KEY时HBase已针对快速读取进行了优化,但我想根据不同的列值进行查询。但是应用列过滤器(使用JAVA API)会导致全表扫描,从而降低系统速度
我有什么选择?
欢迎任何其他建议。
答案 0 :(得分:1)
在Hbase中从行键获取数据的速度很快,但由于未对值进行索引,因此使用值过滤器进行查询是非常有用的。如果要编制索引的列数很少,则可以考虑反向表索引。
但是如果你想要更多东西,比如多标准查询,你应该看看elasticsearch并使用它来存储你的列上的索引,并将你的数据保存在hbase中。不要忘记在创建索引时使用“_source”禁用源存储:{“enabled”:false},所有数据都已经在hbase中,不要浪费你的硬盘:)