cassandra 0.8比0.7 结构变了
资料不太好找。CLI的命令输入完了还要打分号结束。
hector是个不错的client,比Thrift要舒服的多~!
发个例子:
修改ColumnFamily:
ThriftCfDef columnFamilyDefinition = new ThriftCfDef("s3","bb",ComparatorType.UTF8TYPE);
columnFamilyDefinition.setKeyValidationClass("org.apache.cassandra.db.marshal.UTF8Type");
columnFamilyDefinition.setDefaultValidationClass("org.apache.cassandra.db.marshal.UTF8Type");
//myCluster.addColumnFamily(columnFamilyDefinition) ;
columnFamilyDefinition.setId(1013);
myCluster.updateColumnFamily(columnFamilyDefinition);
插入记录
Keyspace myKeyspace = HFactory.createKeyspace("s3", myCluster);
Mutator<String> mutator = HFactory.createMutator(myKeyspace, StringSerializer.get());
mutator.insert("a", "bb", HFactory.createStringColumn("column1", "你好在"));//参数分别是rowkey, columnFamily, columnName ,value
结果:
[default@s3] list bb;
Using default limit of 100
-------------------
RowKey: a
=> (column=column1, value=你好在, timestamp=1311095860626000)
-------------------
RowKey: aa
=> (column=c, value=abcccc, timestamp=1311096453992000)
-------------------
RowKey: b
=> (column=column1, value=你好在, timestamp=1311096153990000)
查询:
// Create a query
ColumnQuery q = HFactory.createColumnQuery(myKeyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get());
// set key, name, cf and execute
QueryResult<HColumn> r = q
.setColumnFamily("bb")
.setKey("b")
.setName("column1")
.execute();
// read value from the result
HColumn<String,String> c = r.get();
String value = c.getValue();
System.out.println(value);