我们使用hbase已经有相当一段时间了。我们面临的问题是扫描+滤波器的性能。我们采用了一种众所周知的方法,即使用key-value,columnar-store来创建表示大多数查询过滤器的复合rowkey。例如。 customerid|calmonth|transactionid|productid|itemid
. 允许用户一次查询多个日历月、交易、产品和项目。由于hbase中的数据是自然排序的,因此我们采用以下方法之一:
基于startrow和endrow的扫描,包括 customerid|startmonth
结束 customerid|endmonth
. 获取服务器中的所有数据并应用appserver中的其余筛选器
基于startrow和endrow的扫描,包括 customerid|startmonth
结束 customerid|endmonth
. 还应用columnvaluefilter,因为我们还将一些筛选器值存储为cqs。
以上两种方法现在都没有扩展。扫描是我们唯一的用例。它是只读表。我知道我可以用regex comparator尝试hbase一个行过滤器,但是我想知道是否有另一个nosql选项可以很自然地解决这个问题。i、 e.对于rowkey有一个树状结构,重要的是可以并行地遍历多个分支,这样就不会影响性能。我正在研究像neo4j这样的图形数据库,但我不确定这是否是一个正确的选择。
1条答案
按热度按时间hgc7kmma1#
由于您有多个访问路径,因此需要索引来提高性能,并需要基本的基数机制来选择要使用的索引。你可以把拼接机放在上面,让它很快工作。它是开源的。。。