Cassandra CQL:如何检查键空间是否存在?

Cassandra CQL:如何检查键空间是否存在?,cassandra,cql,Cassandra,Cql,我需要检查Cassandra数据库中是否存在某些键空间。我需要这样写smth: if (keyspace KEYSPACE_NAME not exists) create keyspace KEYSPACE_NAME; 有一个描述键空间的命令,但我能在cql脚本中以某种方式从中检索信息吗?截至目前,如果不存在,则不提供创建键空间。可能在将来,他们会添加此功能。一个接近这个,可能是这个,也许他们也会加入创建键空间。耸耸肩 您可能可以在python或任何Cassandra客户机中使用CQL执行类似

我需要检查Cassandra数据库中是否存在某些键空间。我需要这样写smth:

if (keyspace KEYSPACE_NAME not exists) create keyspace KEYSPACE_NAME;
有一个描述键空间的命令,但我能在cql脚本中以某种方式从中检索信息吗?

截至目前,如果不存在,则不提供
创建键空间。可能在将来,他们会添加此功能。一个接近这个,可能是这个,也许他们也会加入创建键空间。耸耸肩

您可能可以在python或任何Cassandra客户机中使用CQL执行类似的操作。我有一个简单的createkeyspace,如果不存在的话,它是用java编写的

try
{
    if (cluster.describeKeyspace("new_keyspace") == null)
    {
        System.out.println("create new keyspace");
        KeyspaceDefinition ksdef = HFactory.createKeyspaceDefinition("new_keyspace");
        cluster.addKeyspace(ksdef);
    }
    else
    {
        System.out.println("keyspace exists");
    }
}
catch (HectorException e)
{   
}
根据:,从Cassandra 1.1开始,您现在可以执行以下操作:

USE system;
SELECT * FROM schema_keyspaces;

只是提供新的信息。在创建键空间时,您可以像下面这样添加if语句

CREATE KEYSPACE IF NOT EXISTS Test
    WITH replication = {'class': 'SimpleStrategy',
                        'replication_factor' : 3}

对不起,我刚才误按了
接受编辑
。请不要添加会改变编辑问题上下文的内容。
使用系统就是这样一个例子。问题是系统表往往会随着时间的推移(很快)发生变化。支持这样的代码可能是一场噩梦,特别是当您必须为各种用户提供遗留支持时。在cql3.x中,信息现在位于名为
system\u schema
的键空间中。请注意,据我所知,
descripe*
函数的速度相当慢。希望你不必经常使用它。这在2012年得到了回答。。。除非在写这篇文章的时候,你还在使用古老的卡桑德拉,否则你真的应该阅读当前的文档。