Cassandra-bombardier is a project mainly written in Python, it's free.
A Python bombardier based on Pycassa used to benchmark Cassandra Write Performance
A Python bombardier based on Pycassa, that batch inserts:
into Cassandra
$ python cassandra-bombardier.py
Usage: cassandra-bombardier.py <number of rows> <number of columns in a single row> [<number of processes>]
As you can see from the usage, you need to provide a number of rows and a number of columns to be created for each row. [ Optionally you can also add a number of processes to insert rows to Cassandra in paralleal. By default, if number of processes is not provided, a single process will be used ]
Let's start from inserting 100,000 rows where each row has 7 columns:
$ python cassandra-bombardier.py 100000 7
inserting 100000 rows 7 columns each, with 1 process(es) => took 11.048162 seconds
Cassandra was designed with parallelism in mind, so let's make it happy and use 8 processes to inserting 100,000 rows ( 7 columns each ) in parallel:
$ python cassandra-bombardier.py 100000 7 8
inserting 100000 rows 7 columns each, with 8 process(es) => took 6.310905 seconds
'cd' to the cassandra-bombardier root, and do
$ pip install -r requirements
http://pycassa.github.com/pycassa/index.html ( follow the pycassa instructions: you'd also need to install "thrift05")
$ /usr/local/bin/cassandra -f
$ /usr/local/bin/cassandra-cli
[default@unknown] connect localhost/9160;
[default@unknown] create keyspace Keyspace1;
[default@unknown] use Keyspace1;
[default@Keyspace1] create column family ColumnFamily1;
Whenever you need to delete all the data inserted previously, truncate the family ( sounds cruel, but.. gotta do it ):
[default@Keyspace1] truncate ColumnFamily1;