利用thrift API访问Cassandra 第一天

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 20:05   19   0

虽然注册了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();

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP