【问题标题】:Scylla/Cassandra: compaction strategy for time series data without TTLScylla/Cas​​sandra:无 TTL 时间序列数据的压缩策略
【发布时间】:2021-02-24 19:00:00
【问题描述】:

我们实际上使用的是 scylla,但我仍然在标题中包含“cassandra”,因为问题也应该与它相关。

我们有一个没有 TTL(数据永不过期)的时间序列工作负载。对于上下文,表模式大致如下所示:

CREATE TABLE events (
    entity INT,
    time_partition TIMESTAMP,
    event_time TIMESTAMP,

    a TEXT,
    b TEXT,
    c TEXT,
    PRIMARY KEY((entity, time_partition), event_time)
);

其中time_partitionevent_time 相同,但总是被截断为一个小时,因此相同entity 和同一小时内的事件会转到同一个分区。

我试图弄清楚我们应该使用什么压缩策略。起初我认为我们应该使用TimeWindowCompactionStrategy (TWCS):如果时间窗口是 1 天,这基本上意味着我们将有每天的 sstables,这对我来说很有意义;但后来我发现各种文档都说 TWCS 不适合永不过期的数据。例如。 this doc on datastax.com 说:

不适合没有 TTL 工作负载的数据,因为存储会无限增长。

尽管存储确实会“无限制地”增长,因为我们不想删除旧数据,但其他策略不也是一样吗?如果我们从不删除数据,这意味着它会继续增长。这只是我们如何组织这个不断增长的数据集的问题,我不确定为什么 TWCS 不适合。 大量文件有问题吗?例如。如果我们将窗口设为 1 天,那么 10 年的数据将大约是 3650 个文件。

希望有任何建议。

【问题讨论】:

    标签: cassandra partitioning scylla


    【解决方案1】:

    在 Scylla 案例中,您将拥有更多文件,因为每个分片(核心)都处理自己的压缩。但是,即使在 10 年内,您也可以拥有 36k 个文件,这对 Scylla 来说不是问题。

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 2018-12-05
      • 2023-01-31
      • 2019-12-15
      • 2019-12-16
      • 2021-11-21
      • 2023-03-31
      • 2021-01-29
      • 2020-04-21
      相关资源
      最近更新 更多