cassandra超级列和复合列的混淆

时间:2016-04-29 14:37:59

标签: model cassandra time-series

来自cassandra的音乐专辑的例子,

(a)中

artist    K
id        C
title
album

这是超级列的设计吗?列由(id)索引,(标题,专辑)存储为子列?

如果模型看起来像这样,

(b)中

artist    K
id        C
title     C
album
那么它变成了复合柱设计?用(id | title)索引的列和每列只存储(album)?

我的理解是否正确?我正在设计一个时间序列数据库,有50个传感器共享相同的时间戳,我将把它们放到一个宽行中,比如

(c)中

location  K
device    K
year      K
month     K
day       K
timestamp C
sensor1   
sensor2
....
sensor50

如果我只在给定时间范围内查询sensor1,是否意味着cassandra将连续扫描所有50个传感器并选择我需要的唯一传感器?

也许我应该使用架构

(d)

location   K
device     K
year       K
month      K
day        K
sensorname C
timestamp  C
value

分区大小和阅读性能有何不同?

1 个答案:

答案 0 :(得分:1)

群集列不是超级列,不是。

我建议观看有关数据建模的DataStax Academy视频。

https://academy.datastax.com/courses/ds201-foundations-apache-cassandra/c-data-model-clustering-columns