用于有效扫描多个复合行键的NoSql数据库

时间:2016-08-03 19:32:08

标签: performance hbase graph-databases nosql

我们一直在使用Hbase。我们面临的问题是扫描+过滤器性能。我们采用了一种众所周知的键值,柱状存储方法,即创建代表大多数查询过滤器的复合rowkey。例如customerid|calmonth|transactionid|productid|itemid。允许用户一次查询多个日历月,交易,产品和项目。由于hbase中的数据是自然排序的,因此我们采用以下两种方法:

  1. 根据包含customerid|startmonth和结束customerid|endmonth的startrow和endrow进行扫描。获取服务器中的所有数据并在应用服务器中应用其余过滤器
  2. 根据包含customerid|startmonth和结束customerid|endmonth的startrow和endrow进行扫描。同样应用ColumnValueFilter,因为我们还将一些过滤器值存储为CQ。
  3. 上述两种方法现在都没有扩展。 SCAN是我们唯一的用例。这是只读表。我知道我可以尝试使用RegEx比较器来尝试使用RowFilter,但我想知道是否有另一个NoSQL选项可以自然地解决这个问题。即,具有用于行键的树状结构,并且重要的是可以并行地遍历多个分支,因此它不会受到性能影响。我正在看neo4j这样的图形数据库,但我不确定这是否是正确的选择。

1 个答案:

答案 0 :(得分:0)

由于您有多个访问路径,因此需要使用索引来创建该性能,并使用基本的基数机制来选择要使用的索引。你可以在它上面拍击Splice Machine并让它很快运行。它是开源的......