首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用TWCS和计数器列从Cassandra表中删除数据?

如何用TWCS和计数器列从Cassandra表中删除数据?
EN

Stack Overflow用户
提问于 2020-01-16 15:28:50
回答 1查看 285关注 0票数 0

我有一个使用TWCS的表,包括一个计数器列:

代码语言:javascript
复制
create table sensors_by_time (
            group text,     // sensor group
            date date,       // bucketing
            id text,        // sensor id 
            count counter,  // detected count
        primary key ((group, date), id))
        WITH CLUSTERING ORDER BY (id DESC)
        AND compaction = {
            'compaction_window_size': '24',
            'compaction_window_unit': 'HOURS',
            'class': 'org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy'}

一周后,我有7个马厩(一天一匹)。我需要7天的数据,所以我想使用ttl和gc_grace_seconds,但是Cassandra doe不支持有计数器列的表上的ttl。

我的另一个选择是使用一些作业来删除7天以上的数据,但是我知道这对我的性能不好,因为TWCS:http://www.redshots.com/cassandra-twcs-must-have-ttls/

我应该如何从这样的表中删除旧数据?

EN

回答 1

Stack Overflow用户

发布于 2022-01-26 08:03:10

我知道我正在重新提出一个老问题,但我遇到了一个类似的问题,我写了一个工具来帮助解决这个问题。在每个节点上,您必须:

  • 停止卡桑德拉进程
  • 删除包含旧记录的SSTables
  • 重新启动进程

困难的部分是知道哪个SSTables包含您不再感兴趣的日期范围。Cassandra附带了一个工具sstablemetadata,它显示SSTable元数据,包括Min/Max时间戳。

sstablemetadata速度慢,输出很难处理。相反,尝试ls-sstm,它输出关于Cassandra表目录:https://github.com/lokkju/cassandra-tools/blob/main/ls-sstm.sh中每个SSTable的格式良好的表格数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59772940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档