我正在尝试为 Cassandra 11x 中的传感器网络建模时间序列数据。我的主要用例是从特定源设备查询大时间范围。我更喜欢使用 cql 来节省实现时间。

使用 cql3 我正在定义一个这样的表:

create table example (
    source int,
    sample_time timeuuid,
    value double,
    PRIMARY KEY (source,sample_time)
);

但是这个分区键会导致行很快变得太宽/太热,并且不会对查询进行并行化。理想情况下,我想定义一个复合类型作为我的分区键,cql 支持吗?

我读过 http://www.datastax.com/dev/blog/advanced-time-series-with-cassandra 并且关于高吞吐量时间线的部分特别相关。我是否必须直接定义存储布局而忘记 cql?

最佳答案

这需要 Cassandra 1.2:

CREATE TABLE foo (
  a int,
  b text,
  c uuid,
  PRIMARY KEY ((a, b))
);

将为您提供一个由 int,text 组合而成的存储引擎行键。

关于cassandra - CQL 和时间序列架构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13500216/

10-12 22:58