【问题标题】:Cassandra data model for time series data to query last hour data用于时间序列数据的 Cassandra 数据模型以查询最后一小时数据
【发布时间】:2021-08-03 01:26:44
【问题描述】:

我有一个场景来保存设备中的事件,这些事件将以 30 秒的间隔触发。单个事件最多包含 20 个字段(表中的列数为 20),我需要运行查询以从表中获取最后一小时的事件以进行批处理。由于它是时间序列数据,据我所知,我认为选择小时作为分区键不是最佳实践,因为随着设备数量的增加,最终会形成巨大的分区。那么如果我选择年份或月份作为分区键来控制分区大小,我将如何获取最后一小时的事件?

1,在这种情况下选择Cassandra是个好选择还是有更好的选择?

2,如果我选择Cassandra,我应该如何设计数据模型来处理这种情况?

  • 无限可能

【问题讨论】:

    标签: database cassandra time-series bigdata data-modeling


    【解决方案1】:

    是的,Cassandra 是最好的选择。

    我们应该始终为查询设计 Cassandra 表。 我会设计如下表格-

    CREATE TABLE DEVICE_EVENT_BY_HOUR (
    year int,
    month int,
    week int,
    day int,
    hour int,
    value text,
    PRIMARY KEY ((year, month, week, day, hour),value);
    
    The value column will have all the event values in json format.
    

    这将在整个集群中均匀分布事件。这种设计的唯一问题是,如果我们在一天中的某个特定时间有太多更新,它将淹没该分区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 2013-04-17
      • 2013-07-13
      • 2014-05-07
      • 2014-11-18
      • 1970-01-01
      相关资源
      最近更新 更多