【问题标题】:cassandra and historical data time wisecassandra 和历史数据时间明智
【发布时间】:2017-12-25 18:43:06
【问题描述】:

我们有一个要求,我们有一个包含 20 个字段的关系数据库表 T1。我们捕获此表中发生在各个字段(提交日志)上的所有更改/更新,并摄取/应用 Cassandra 中相应表 CT1 中的更改,即 Cassandra 表 CT1 具有与 T1(关系数据库表)完全相同的架构/字段。

对于 Cassandra 表 CT1,我们有额外的要求,即我们要捕获/存储/检索所有字段的所有更改值,这意味着如果字段 f1 更改了 20 倍,则应保存具有相应更改时间戳的所有更改值。同样,如果字段 f3 更改 100 次,则应保存其所有值。注意:不同的字段在不同的时间变化,每个字段的变化次数不定,这意味着一个字段可能一天变化 1000 次,而另一些字段可能永远不会变化。

这是每个字段的某种时间序列数据。所以我想知道如何在 Cassandra 中有效地表示这样的数据模型?另一个要求是我想有效地检索表中所有字段的最新值。

例如:

如果 f1 一天更改 10 次,对于 f1,我希望返回其最近的值。如果 f2 在一周前最近发生了变化,那么对于 f2,应该返回最近的值,对于其他字段,依此类推。

【问题讨论】:

    标签: cassandra time-series data-modeling


    【解决方案1】:

    您可以通过阅读了解有关 Cassandra 中时间序列存储的更多详细信息 thisthis 文章。 因此,要轻松找到最近的值,您可以创建如下表结构:

    CREATE TABLE table1_history (
    column_name text,
    change_time timestamp,
    column_value text,
    PRIMARY KEY (column_name, change_time),
    ) WITH CLUSTERING ORDER BY (change_time DESC)
    

    因此,您可以从表中找到具有公共选择数据的最新值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 2012-09-27
      • 2015-11-30
      • 2015-10-13
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多