首页 > 解决方案 > Cassandra 旧数据删除

问题描述

在 cassandra 上,我们只需要特定表的 100 天数据。但是,我们最近才设置了 TTL 值,比该值更早的数据仍然作为陈旧数据保留在系统中。我们正在考虑使用不同的方法将旧数据从系统中删除。一个建议是创建一个 Spark 作业来识别早于特定时间范围的数据并将它们全部删除。另一个想法是创建一个只有 100 天数据的新表并删除旧表。但是我有各种各样的疑问

  1. 如何重命名正在更新实时数据的表,
  2. cassandra 将如何处理这样的表?虽然我重新创建了一个数据较少的新表并将其重命名在一个节点(比如节点 1)上,但集群中的其他节点是否会自动删除其表中的旧数据或同步节点 1 上的表并推送所有旧的数据上去?

我对 cassandra 真的很陌生,需要专家建议。请建议是否有更好的方法来处理这个问题。

标签: cassandrarename

解决方案


Cassandra 无法重命名表,您需要

  1. 创建具有不同名称的新表
  2. 确保此表具有 TTL 子句
  3. 仅将您感兴趣的记录子集加载到其中;这可能会很棘手,因为查询将取决于表的架构,具有集群键的时间戳部分的列是吗?
  4. 更新您的应用程序以指向新表
  5. 放下桌子

推荐阅读