如何从Cassandra Keyspace中删除所有表格和UDT?

4
有没有办法在Cassandra中清除keyspace?我们无法直接删除keyspace,因为我们没有创建或删除keyspace的权限。
谢谢!
附注:我们正在使用Cassandra 3.7。
2个回答

2

使用cqlsh实现相当简单,而且比尝试使用自定义代码实现更好 - 有编程模式下的细微差别,最好避免:

删除所有内容的完整脚本在此处:

cqlsh -e 'describe keyspace test;' > ks.cql
rm -f drop-all.cql
grep -e '^CREATE MATERIALIZED VIEW' ks.cql|sed -e 's|^CREATE MATERIALIZED VIEW \(.*\) ($|DROP MATERIALIZED VIEW \1;|' >> drop-all.cql
grep -e '^CREATE INDEX' ks.cql|sed -e 's|^CREATE INDEX \(.*\) ($|DROP INDEX \1;|' >> drop-all.cql
grep -e '^CREATE TABLE' ks.cql|sed -e 's|^CREATE TABLE \(.*\) ($|DROP TABLE \1;|' >> drop-all.cql
grep -e '^CREATE TYPE' ks.cql|sed -e 's|^CREATE TYPE \(.*\) ($|DROP TYPE \1;|' >> drop-all.cql
cqlsh -f drop-all.cql

1
你可以像这样执行 cqlsh -e 'use ;describe tables'。这将返回一个表列表,你可以使用它们来创建查询以删除这些表。UDT 也是类似的。

现在,我们正在做同样的事情。但是我们的模式太大了,而且经常变化。我们正在寻找任何类型的命令或客户端(例如achilles模式创建器)。 - Sumit A

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接