【问题标题】:How to drop all Tables and UDTs from a Cassandra Keyspace?如何从 Cassandra 密钥空间中删除所有表和 UDT?
【发布时间】:2018-05-14 01:33:00
【问题描述】:

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

附:我们正在使用 Cassandra 3.7。

【问题讨论】:

    标签: cassandra


    【解决方案1】:

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

    【讨论】:

    • 谢谢!现在,我们也在做同样的事情。但是我们的架构太大了,而且经常变化。我们正在寻找任何类型的命令或客户端(如 achilles 架构创建者)。
    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 2016-04-18
      • 2015-09-01
      相关资源
      最近更新 更多