虽然注册了csdn很长时间,但从来还没有写过什么东西,最近研究cassandra,发现从百度上搜索相关的内容少得可怜,所以想把自己学习的心得记下来,也方便国内的同行们使用。这里记下的例子都是本人亲自在机器上调试通过的。
今天先把利用thrift_api创建keyspace和column family得例子写下来。
import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.cassandra.thrift.Cassandra; import org.apache.cassandra.thrift.CfDef; import org.apache.cassandra.thrift.InvalidRequestException; import org.apache.cassandra.thrift.KsDef; 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.transport.TFramedTransport; import org.apache.thrift.transport.TSocket; /** * Cassandraへの接続、Keyspace、Column Family作成 * * @author 劉振濤 * @version 1.0 */ public class CreatCassandraClient {
/** * @param args */ public static void main(String[] args) throws InvalidRequestException, NotFoundException, UnavailableException, TimedOutException, TException, UnsupportedEncodingException { TSocket socket = new TSocket("192.168.1.113", 9160); //TSocket socket = new TSocket("localhost", 9160); TBinaryProtocol binaryProtocol = new TBinaryProtocol(new TFramedTransport(socket)); Cassandra.Client client = new Cassandra.Client(binaryProtocol); socket.open(); KsDef newSpace = new KsDef(); newSpace.setName("Ryu"); newSpace.setStrategy_class("org.apache.cassandra.locator.SimpleStrategy"); // 1:書込め;0:読込めのみ(思う) newSpace.setReplication_factor(1); List<CfDef> cf_defs = new ArrayList<CfDef>(); CfDef cfDef = new CfDef("Ryu","t_erpbase_user"); cfDef.setColumn_type("Standard"); cfDef.setComparator_type("org.apache.cassandra.db.marshal.UTF8Type"); cf_defs.add(cfDef); newSpace.setCf_defs(cf_defs); client.system_add_keyspace(newSpace); /*
// Column Family(テーブル)を追加 CfDef cfDef1 = new CfDef("Ryu","t_erpbase_user_group"); cfDef1.setColumn_type("Standard"); cfDef1.setComparator_type("org.apache.cassandra.db.marshal.UTF8Type"); client.system_add_column_family(cfDef1); */
// 削除テーブル //client.system_drop_keyspace("Ryu"); // データベース切断 socket.close();
} |