package org.cloudgraph.cassandra; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import org.apache.cassandra.thrift.Cassandra; import org.apache.cassandra.thrift.Column; import org.apache.cassandra.thrift.ColumnParent; import org.apache.cassandra.thrift.ConsistencyLevel; import org.apache.cassandra.thrift.InvalidRequestException; import org.apache.cassandra.thrift.NotFoundException; import org.apache.cassandra.thrift.TimedOutException; import org.apache.cassandra.thrift.UnavailableException; import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.transport.TFramedTransport; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; public class ThriftClient { public static void main(String[] args) throws TException, InvalidRequestException, UnavailableException, UnsupportedEncodingException, NotFoundException, TimedOutException { //CREATE KEYSPACE keyspace_thrift //WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }; //CREATE TABLE Standard1 ( // name text PRIMARY KEY, // age int // ); //CREATE COLUMNFAMILY CF1( name varchar, age int, PRIMARY KEY (name)); TTransport tr = new TFramedTransport(new TSocket("u16551142.onlinehome-server.com", 9160)); TProtocol proto = new TBinaryProtocol(tr); Cassandra.Client client = new Cassandra.Client(proto); tr.open(); String key_user_id = "1111"; // insert data long timestamp = System.currentTimeMillis(); client.set_keyspace("keyspace_thrift"); ColumnParent parent = new ColumnParent("cf1"); Column nameColumn = new Column(toByteBuffer("name")); nameColumn.setValue(toByteBuffer("Chris Goffinet")); nameColumn.setTimestamp(timestamp); client.insert(toByteBuffer(key_user_id), parent, nameColumn, ConsistencyLevel.ONE); Column ageColumn = new Column(toByteBuffer("age")); ageColumn.setValue(toByteBuffer("24")); ageColumn.setTimestamp(timestamp); client.insert(toByteBuffer(key_user_id), parent, ageColumn, ConsistencyLevel.ONE); /* ColumnPath path = new ColumnPath("cf1"); // read single column path.setColumn(toByteBuffer("name")); System.out.println(client.get(toByteBuffer(key_user_id), path, ConsistencyLevel.ONE)); // read entire row SlicePredicate predicate = new SlicePredicate(); SliceRange sliceRange = new SliceRange(toByteBuffer(""), toByteBuffer(""), false, 10); predicate.setSlice_range(sliceRange); List<ColumnOrSuperColumn> results = client.get_slice(toByteBuffer(key_user_id), parent, predicate, ConsistencyLevel.ONE); for (ColumnOrSuperColumn result : results) { Column column = result.column; System.out.println(toString(column.name) + " -> " + toString(column.value)); } */ tr.close(); } public static ByteBuffer toByteBuffer(String value) throws UnsupportedEncodingException { return ByteBuffer.wrap(value.getBytes("UTF-8")); } public static String toString(ByteBuffer buffer) throws UnsupportedEncodingException { byte[] bytes = new byte[buffer.remaining()]; buffer.get(bytes); return new String(bytes, "UTF-8"); } }