12

特定のキースペースが Cassandra データベースに存在するかどうかを確認する必要があります。次のように書く必要があります。

if (keyspace KEYSPACE_NAME not exists) create keyspace KEYSPACE_NAME;

キースペースを説明するコマンドがありますが、どうにかして cql スクリプトで情報を取得できますか?

4

3 に答える 3

37

新鮮な情報を提供するだけです。CQL3以降、キースペースの作成中にifステートメントを次のように追加できます

CREATE KEYSPACE IF NOT EXISTS Test
    WITH replication = {'class': 'SimpleStrategy',
                        'replication_factor' : 3}
于 2013-10-06T21:14:15.427 に答える
10

https://issues.apache.org/jira/browse/CASSANDRA-2477によると、Cassandra 1.1 の時点で、次のことができるようになりました。

USE system;
SELECT * FROM schema_keyspaces;
于 2012-08-06T17:25:57.697 に答える
10

現時点では、cql 文法create keyspace if not exists. おそらく将来的に、彼らはこの機能を追加するでしょう。これに近いものは、この改善であり、キースペースの作成にも追加される可能性があります。肩をすくめる

おそらく、Python または任意の Cassandra クライアントで CQL を使用して同様のことを行うことができます。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)
{   
}
于 2012-03-12T04:37:38.060 に答える