cassandra - Cassandra 旧数据删除
问题描述
在 cassandra 上,我们只需要特定表的 100 天数据。但是,我们最近才设置了 TTL 值,比该值更早的数据仍然作为陈旧数据保留在系统中。我们正在考虑使用不同的方法将旧数据从系统中删除。一个建议是创建一个 Spark 作业来识别早于特定时间范围的数据并将它们全部删除。另一个想法是创建一个只有 100 天数据的新表并删除旧表。但是我有各种各样的疑问
- 如何重命名正在更新实时数据的表,
- cassandra 将如何处理这样的表?虽然我重新创建了一个数据较少的新表并将其重命名在一个节点(比如节点 1)上,但集群中的其他节点是否会自动删除其表中的旧数据或同步节点 1 上的表并推送所有旧的数据上去?
我对 cassandra 真的很陌生,需要专家建议。请建议是否有更好的方法来处理这个问题。
解决方案
Cassandra 无法重命名表,您需要
- 创建具有不同名称的新表
- 确保此表具有 TTL 子句
- 仅将您感兴趣的记录子集加载到其中;这可能会很棘手,因为查询将取决于表的架构,具有集群键的时间戳部分的列是吗?
- 更新您的应用程序以指向新表
- 放下桌子
推荐阅读
- mesibo - 可可豆荚中的 Mesibo sdk 集成问题
- reactjs - 反应:使打字稿根据另一个组件中的条件推断子类型
- android - Android - 为 textview 创建类似于电影学分的滑动动画
- javascript - 在样式化组件中使用 Textarea 可以通过在 ReactJS 中重置光标的位置来向后写入
- python - 使用日期时间的闰年代码中的问题(初学者帮助)
- agda - Agda - 以交互方式构建证明 - 如何使用孔语法?
- airflow - Airflow - 使用 CLI 将失败任务的状态更改为成功
- javascript - WebAssembly 返回字符串使用 C
- django-admin - Django admin - 定义 list_editable 的动态方式
- python - 如何改进 Python 代码以交换 32 位整数的位