47
votes

What cqlsh command can I use to quickly see the keyspaces in a cluster? cqlsh does not provide show keyspaces and describe cluster isn't as concise as I want.


I'm working using the following specifications:

cqlsh 2.2.0, Cassandra 1.1.10, CQL spec 2.0.0, Thrift protocol 19.33.0

4

4 Answers

105
votes

Very simple. Just enter this command in your cqlsh shell and enjoy

 select * from system.schema_keyspaces;

In C*3.x, we can simply use

 describe keyspaces
48
votes

Just try this:

describe keyspaces


However you may need specs of approximately the following (rather than those mentioned by yourself Crowie)

[cqlsh 4.1.1 | Cassandra 2.0.6 | CQL spec 3.1.1 | Thrift protocol 19.39.0]

13
votes
cqlsh> select * from system_schema.keyspaces;

 keyspace_name      | durable_writes | replication
--------------------+----------------+-------------------------------------------------------------------------------------
        system_auth |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '1'}
      system_schema |           True |                             {'class': 'org.apache.cassandra.locator.LocalStrategy'}
 system_distributed |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
             system |           True |                             {'class': 'org.apache.cassandra.locator.LocalStrategy'}
      system_traces |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '2'}
4
votes

The correct way with C* 3.x series is:

List<KeyspaceMetadata> keyspaces = Cluster.getMetadata().getKeyspaces()

Then use getName() on the KeyspaceMetadata instances.