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

时间:2017-11-30 07:30:34

标签: cassandra

有没有办法清除Cassandra中的键空间?我们不能直接删除键空间,因为我们没有权限创建或删除键空间。 提前谢谢!

P.S。我们正在使用Cassandra 3.7。

2 个答案:

答案 0 :(得分:1)

您可以执行类似cqlsh -e' use; describe tables'。这将返回一个表列表,您可以使用这些表创建查询以删除这些表。与udt的相似。

答案 1 :(得分:1)

通过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