Cassandra ships with a very basic interactive command line interface, or shell. Using the CLI you can connect to remote nodes in the cluster, set and retrieve records and columns, or query node and cluster meta-data (i.e. cluster name, keyspace listings and disposition, etc). The CLI is handy for quick tests or for familiarizing yourself with the data-model.

You can start the CLI using the bin/cassandra-cli startup script.

evans@achilles:~/cassandra$ bin/cassandra-cli -host localhost -port 9160
Connected to localhost/9160
Welcome to cassandra CLI.

Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.

If you are using SimpleAuthenticator (instead of AllowAllAuthenticator) you can specify the username, password and keyspace by adding the following options to cassandra-cli: -username username -password password -keyspace keyspace):

tblose@quasar:~/dev/workspaces/cassandra$ bin/cassandra-cli -host localhost -port 9160 -username todd -keyspace Keyspace1 -password blah
Connected to: "Test Cluster" on localhost/9160
Welcome to cassandra CLI.

Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.

As the banner says, you can use 'help' or '?' to see what the CLI has to offer, and 'quit' or 'exit' when you've had enough fun. But lets try something slightly more interesting...

[todd@Keyspace1] set Keyspace1.Standard2['jsmith']['first'] = 'John'
Value inserted.
[todd@Keyspace1] set Keyspace1.Standard2['jsmith']['last'] = 'Smith'
Value inserted.
[todd@Keyspace1] set Keyspace1.Standard2['jsmith']['age'] = '42'
Value inserted.

Cassandra 0.7 introduces the use command to reduce keystrokes. The above example can be reduced to...

[default@unknown] use Keyspace1 todd 'blah$'
Authenticated to keyspace: Keyspace1
[todd@Keyspace1] set Standard2['jsmith']['first'] = 'John'
Value inserted.
[todd@Keyspace1] set Standard2['jsmith']['last'] = 'Smith'
Value inserted.
[todd@Keyspace1] set Standard2['jsmith']['age'] = '42'
Value inserted.

In the example above we authenticated to 'Keyspace1' and created a record in the Standard2 column family using the key jsmith. This record has three columns, first, last, and age. Each of these commands is the equivalent to an insert() using the Thrift API.

In API version 2.1.0 the example would go like the following due to changes in the API.

cassandra> set Keyspace1.Standard2['jsmith']['first'] = 'John' 
Value inserted.
cassandra> set Keyspace1.Standard2['jsmith']['last'] = 'Smith'
Value inserted.
cassandra> set Keyspace1.Standard2['jsmith']['age'] = '42'
Value inserted.

Now let's read back the jsmith row to see what it contains:

[todd@Keyspace1] get Standard2['jsmith']                  
=> (column=last, value=Smith, timestamp=1271921526614000)
=> (column=first, value=John, timestamp=1271921521923000)
=> (column=age, value=42, timestamp=1271921532713000)
Returned 3 results.

Note: Using the get command in this form is the equivalent to a get_slice() using the Thrift API.

Once again, with the API being different, you need to specify the Keyspace

cassandra> get Keyspace1.Standard2['jsmith']
=> (column=last, value=Smith, timestamp=1278953905903000)
=> (column=first, value=John, timestamp=1278953848952000)
=> (column=age, value=42, timestamp=1278953919182000)
Returned 3 results.


CassandraCli06 (last edited 2013-11-13 01:11:44 by 50)