【问题标题】:confusion of cassandra super columns and composite columnscassandra超级柱和复合柱的混淆
【发布时间】:2016-08-24 18:44:02
【问题描述】:

以 cassandra 的音乐专辑为例,

(a)

artist    K
id        C
title
album

这是超级专栏的设计吗?列由 (id) 索引,(title, album) 存储为子列?

如果模型看起来像这样,

(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

分区大小和读取性能有什么区别?

【问题讨论】:

  • 也许 (a) 和 (b) 都是复合列架构?
  • 你在哪里找到的例子?永远不要再使用超级列。看起来您正在尝试构建一个已被有效弃用的节俭应用程序。看看 CQL,它是您构建应用程序的方式docs.datastax.com/en/cql/3.1/cql/cql_intro_c.html
  • 示例来自于行星 cassandra 的在线教程。它不是特定应用程序的代码,而是一种设计模式,其中 K 表示分区键,C 表示集群键。我知道不建议使用超级列。但是我对它们是否已经退出感到困惑?文档非常混乱,没有指定 CQL 版本,也没有明确描述磁盘上的数据顺序。

标签: model cassandra time-series


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-28
    • 2013-07-09
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多