Cassandra:每个分区的并发查询或允许过滤

时间:2017-09-06 12:56:33

标签: cassandra cassandra-3.0

说我有以下Cassandra表:

CREATE TABLE experiment(
    bin text,
    x double,
    y double,
    PRIMARY KEY ((bin), x)
);

我想获得x大于10的y值。以下两种方法中哪一种最有效?

  1. 启用允许过滤:

    SELECT x, y FROM experiment WHERE x > 10 ALLOW FILTERING;
    
  2. 首先获取分区键列表,然后运行多个并发查询,每个分区一个,省略了允许过滤的需要。

    SELECT distinct bin FROM experiment;
    SELECT x, y FROM experiment WHERE bin = <bin> AND x > 10; //for each bin
    
  3. 是否有可能采用替代方法(可能更改表格设计)更有效?

    提前致谢!

    编辑作为评论的答案

    这是一个构造的例子。真实数据将是各种传感器测量的列表:

    time-stamp, subject-id, temperature, noise ...
    

    我们想要的查询是给出温度低于10度的噪音水平(在所有测量中,在所有对象上)。我不介意使用不同的分区策略切换到不同的表设计,如果这将有利于查询。

0 个答案:

没有答案