Cassandra <= 0.3
<?php
$GLOBALS['THRIFT_ROOT'] = '/usr/share/php/Thrift';
require_once $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/Cassandra.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TSocket.php';
require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TFramedTransport.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TBufferedTransport.php';
try {
$socket = new TSocket('localhost', 9160);
$transport = new TBufferedTransport($socket, 1024, 1024);
$protocol = new TBinaryProtocol($transport);
$client = new CassandraClient($protocol);
$transport->open();
/* Insert some data into base attributes */
$key_user_id = "1";
$timestamp = time();
$client->insert("users",$key_user_id,"base_attributes:name", "Chris Goffinet", $timestamp, false);
$client->insert("users",$key_user_id,"base_attributes:age", "24", $timestamp, false);
$start = -1;
$end = -1;
$result = $client->get_slice("users", $key_user_id,"base_attributes", $start, $end);
print_r($result);
$transport->close();
} catch (TException $tx) {
print 'TException: '.$tx->why."\n";
}
?>
Python
Make sure that when you generate the gen-py folder, you move the cassandra/ folder into your Python's site-packages.
from thrift import Thrift
from thrift.transport import TTransport
from thrift.transport import TSocket
from thrift.transport import THttpClient
from thrift.protocol import TBinaryProtocol
from cassandra import Cassandra
from cassandra.ttypes import *
import time
socket = TSocket.TSocket("localhost", 9160)
transport = TTransport.TBufferedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = Cassandra.Client(protocol)
try:
transport.open()
key_user_id = "1"
timestamp = time.time()
client.insert("users",key_user_id,"base_attributes:name", "Chris Goffinet", timestamp, False)
client.insert("users",key_user_id,"base_attributes:age", "24", timestamp, False)
start = -1
end = -1
result = client.get_slice("users", key_user_id,"base_attributes", start, end)
print result
except Thrift.TException, tx:
print 'Thrift: %s' % tx.message
finally:
transport.close()
Java
import java.io.UnsupportedEncodingException;
import java.util.List;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;
import org.apache.cassandra.service.InvalidRequestException;
import org.apache.cassandra.service.NotFoundException;
import org.apache.cassandra.service.UnavailableException;
import org.apache.cassandra.service.column_t;
import org.apache.cassandra.service.Cassandra.Client;
public class CClient {
public static void main(String[] args) {
TTransport tr = new TSocket("localhost", 9160);
TProtocol proto = new TBinaryProtocol(tr);
try {
Client client = new Client(proto);
tr.open();
String key_user_id = "1";
long timestamp = System.currentTimeMillis();
client.insert("users", key_user_id, "base_attributes:name",
"Chris Goffinet".getBytes("UTF-8"), timestamp, false);
client.insert("users", key_user_id, "base_attributes:age",
"24".getBytes("UTF-8"), timestamp, false);
int start = -1;
int end = -1;
List<column_t> results = client.get_slice("users", key_user_id,
"base_attributes", start, end);
for (column_t col : results) {
System.out.println(col.getColumnName() + " -> " +
new String(col.getValue(),"UTF-8"));
}
} catch (TTransportException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (InvalidRequestException e) {
e.printStackTrace();
} catch (UnavailableException e) {
e.printStackTrace();
} catch (TException e) {
e.printStackTrace();
} catch (NotFoundException e) {
e.printStackTrace();
} finally {
tr.close();
}
}
}