cassandra_client
A client for the Cassandra distributed database.
License
Copyright 2009 Twitter, Inc. See included LICENSE file. Portions copyright 2004-2009 David Heinemeier Hansson, and used with permission.
The public certificate for this gem is here.
Features
-
clean encapsulation of the Thrift API
-
pluggable serialization and compression
-
Ruby 1.9 compatibility
This is an alpha release and does not yet support the full Thrift API.
Cassandra is a rapidly moving target, but this library should always run against the bundle available here. Don’t expect it to work against any other version right now.
The Github source repository is here; patches and contributions are very welcome.
Installation
You need Ruby 1.8 or 1.9, and Thrift.
If you don’t want to install Thrift from source, you can use this pre-packaged gem. Once you have Thrift, just run:
sudo gem install cassandra_client
Usage
Require the library:
require 'cassandra_client'
Connect to a server and keyspace:
client = CassandraClient.new('Twitter', "127.0.0.1")
Insert into a column family. You can insert a CassandraClient::OrderedHash, or a regular Hash, if order doesn’t matter:
client.insert(:Users, "5", {'screen_name' => "buttonscat"})
Insert into a super column family:
client.insert(:UserRelationships, "5", {"user_timeline" => {"1" => ""}})
Query a super column:
timeline = client.get(:UserRelationships, "5", "user_timeline")
The returned result will always be a CassandraClient::OrderedHash.
See CassandraClient for more methods.
Reporting problems
The Github issue tracker is here. If you have problems with Cassandra itself, please use the cassandra-user mailing list.