Question

J'ai besoin de vérifier si certaines clés existe dans la base de données Cassandra.J'ai besoin d'écrire qch comme ceci:

if (keyspace KEYSPACE_NAME not exists) create keyspace KEYSPACE_NAME;

Il y a une commande décrire les clés, mais je peux en quelque sorte en extraire des informations dans cql script?

Était-ce utile?

La solution

En ce moment, cql grammaire ne pas fournir create keyspace if not exists.Probablement dans l'avenir, ils vont ajouter cette fonctionnalité.L'un se rapprochent de ce, ne serait-ce l'amélioration de la, peut-être qu'ils vont ajouter pour créer des clés trop. haussements d'épaules

Vous pouvez probablement faire quelque chose de similaire à l'aide de CQL en python ou en tout Cassandra clients.J'ai un simple de créer des clés si n'existe pas écrit en 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)
{   
}

Autres conseils

Fournir simplement de nouvelles informations.AS de CQL3 Tout en créant un espace de frappe que vous pouvez ajouter si cette déclaration comme celle-ci

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

Selon: https://issues.apache.org/jira/browse/cassandra-2477, à partir de Cassandra 1.1, vous pouvez maintenant faire:

USE system;
SELECT * FROM schema_keyspaces;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top