Cassandra:更新密钥空间的 gc_grace_seconds

问题描述

是否可以为键空间中的所有表更新 gc_grace_seconds?或者应该每个文件夹都完成

解决方法

没有内置命令来更改键空间中所有表的表选项,但使用 bash + cqlsh 很容易实现。像这样(用实际参数替换 keyspace_namenew_value):

cqlsh -e 'DESCRIBE FULL SCHEMA;'|grep -e '^CREATE TABLE keyspace_name'|\
   sed -e 's|^CREATE TABLE \(.*\) (|ALTER TABLE \1 WITH gc_grace_seconds = new_value; |'|\
   tee schema-changes.cql
cqlsh -f schema-changes.cql