`

cassandra初次使用之添加数据和得到数据

阅读更多

添加数据

package com.guagua.test;

import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.List;

import org.apache.cassandra.thrift.Cassandra;
import org.apache.cassandra.thrift.Column;
import org.apache.cassandra.thrift.ColumnOrSuperColumn;
import org.apache.cassandra.thrift.ColumnParent;
import org.apache.cassandra.thrift.ColumnPath;
import org.apache.cassandra.thrift.ConsistencyLevel;
import org.apache.cassandra.thrift.InvalidRequestException;
import org.apache.cassandra.thrift.NotFoundException;
import org.apache.cassandra.thrift.SlicePredicate;
import org.apache.cassandra.thrift.SliceRange;
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 CClient
{
    public static void main(String[] args)
    throws TException, InvalidRequestException, UnavailableException, UnsupportedEncodingException, NotFoundException, TimedOutException
    {
    	//建立连接
        TTransport tr = new TFramedTransport(new TSocket("192.168.100.108", 9160));
        TProtocol proto = new TBinaryProtocol(tr);
        Cassandra.Client client = new Cassandra.Client(proto);
        tr.open();

        String key_user_id = "1";

        // insert data
        long timestamp = System.currentTimeMillis();
        //相当于DB NAME
        client.set_keyspace("wyqTest");      
        //相当于DB Table
        ColumnParent parent = new ColumnParent("userprofile");
        //字段名
        Column nameColumn = new Column(toByteBuffer("name"));
        //字段值
        nameColumn.setValue(toByteBuffer("Chris Goffinet"));
        //插入时间
        nameColumn.setTimestamp(timestamp);
        //将数据添加到cassandra
        client.insert(toByteBuffer(key_user_id), parent, nameColumn, ConsistencyLevel.ONE);
        //字段名
        Column ageColumn = new Column(toByteBuffer("age"));
        //字段值
        ageColumn.setValue(toByteBuffer("24"));
        //插入时间
        ageColumn.setTimestamp(timestamp);
        //将数据添加到cassandra
        client.insert(toByteBuffer(key_user_id), parent, ageColumn, ConsistencyLevel.ONE);
        //得到相当于DB Table
        ColumnPath path = new ColumnPath("userprofile");

        // 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) + " -&gt; " + 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");
    }
} 

得到数据

package com.test;

import java.util.HashMap;
import java.util.Map;

import me.prettyprint.cassandra.model.AllOneConsistencyLevelPolicy;
import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.cassandra.service.FailoverPolicy;
import me.prettyprint.cassandra.service.template.ColumnFamilyResult;
import me.prettyprint.cassandra.service.template.ColumnFamilyTemplate;
import me.prettyprint.cassandra.service.template.ColumnFamilyUpdater;
import me.prettyprint.cassandra.service.template.ThriftColumnFamilyTemplate;
import me.prettyprint.hector.api.Cluster;
import me.prettyprint.hector.api.Keyspace;
import me.prettyprint.hector.api.exceptions.HectorException;
import me.prettyprint.hector.api.factory.HFactory;

public class MyTest {

	/**
	 * @param args
	 */
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		String keySpace = "wyqTest";//相当于DB NAME
		String columnFamily = "userprofile";//相当于DB Table
		Cluster cluster = HFactory.getOrCreateCluster("Test Cluster",
				"192.168.100.108:9160");
		Map accessMap = new HashMap();
		accessMap.put("username", "wyq");
		accessMap.put("password", "123456");
		Keyspace ksp = HFactory.createKeyspace(keySpace, cluster,
				new AllOneConsistencyLevelPolicy(),
				FailoverPolicy.ON_FAIL_TRY_ALL_AVAILABLE, accessMap);
		ColumnFamilyTemplate<String, String> template = new ThriftColumnFamilyTemplate<String, String>(
				ksp, columnFamily, StringSerializer.get(), StringSerializer
						.get());


		ColumnFamilyUpdater<String, String> updater = template.createUpdater("u_1");
		// 以下name,email,time相当于字段
		updater.setString("name", "wyqa");
		updater.setString("email", "anotherbug@163.com");
		updater.setLong("time", System.currentTimeMillis());
		
		try {
		    template.update(updater);
		    System.out.println("update ok.");
		} catch (HectorException e) {
		    e.printStackTrace();
		}


		try {
			ColumnFamilyResult<String, String> res = template
					.queryColumns("u_1");
			ColumnFamilyResult<String, String> rest = template
			.queryColumns("1");
			String name = res.getString("name");
			String email = res.getString("email");
			long time = res.getLong("time");
			System.out.println("read u_1 name:" + name);
			System.out.println("read u_1 email:" + email);
			System.out.println("read u_1 time:" + time);
			
			System.out.println("age:" + rest.getString("age"));
			System.out.println("name:" + rest.getString("name"));
		} catch (HectorException e) {
			e.printStackTrace();
		}

	}


}

 

0
0
分享到:
评论

相关推荐

    java导出cassandra数据

    本教程将详细讲解如何使用Java API来实现Cassandra数据的导出。 首先,你需要理解Cassandra的数据模型。Cassandra的数据存储基于表(Table),这些表分布在多个节点上,形成一个分区(Partition)。每个分区由键...

    部署cass啊啊啊啊啊啊啊啊啊啊啊

    2. **初始化系统表**: 在首次启动前,运行`bin/cassandra-cli`或`cqlsh`命令创建系统表和键空间。 3. **启动Cassandra服务**: 使用`bin/cassandra`或`bin/start-stop-daemon.sh start cassandra`命令启动服务。检查...

    Datastax Java Driver驱动所需JAR包

    Datastax Java Driver是Cassandra数据库的一个官方Java客户端驱动,由DataStax公司开发和维护。这个驱动程序允许Java开发者高效、稳定地与Apache Cassandra或DataStax Enterprise (DSE)进行交互。在这个压缩包中,...

    数据库表设计工具

    5. **使用更新说明.txt**:这个文件可能包含EZDML的安装指南、功能介绍、新版本特性以及更新日志,对于初次使用者或升级用户来说非常重要,可以指导他们顺利地安装和使用工具。 6. **表结构设计器(EZDML)下载 v...

    ThingsBoard新版安装(30分钟上手).doc

    导入数据库数据环节,文档指导了使用批处理文件运行sql脚本,并针对可能出现的报错提供了相应的解决方案,这对于初次接触数据库操作的用户尤为重要。最后,在系统启动环节,文档详细说明了启动后的操作,比如如何...

    db_数据库_

    例如,`CREATE DATABASE`命令用于创建新的数据库,`USE`命令用于选择要操作的数据库,`CREATE TABLE`用于定义表结构,`INSERT INTO`用于添加数据,`SELECT`用于查询数据,`UPDATE`用于更新数据,而`DELETE`则用于...

    大数据平台建设关键技术

    - **分布式数据库**:如Cassandra,提供高性能的数据管理和查询服务。 #### 四、构件组装 - **定义**:构件组装是指利用标准化的构件通过简单的组装方式来构建软件系统的过程。 - **优点**: - **可重用性**:...

    solr-5.4.0.tgz安装包

    它提供了丰富的API,可以轻松集成到各种Web应用程序中,同时也支持多种数据源的集成,如Hadoop、Cassandra等大数据平台。 在实际应用中,用户可能需要根据业务需求调整Solr的配置,例如优化内存分配、设置复制因子...

    ThingsBoard安装.doc

    而使用Cassandra时,则需要8G内存的服务器。首先要做的是安装Java开发工具包(JDK),版本至少为11.0.9。安装完JDK后,接下来是安装PostgreSQL数据库,并在安装成功后启动pgAdmin,使用超级用户(postgres)身份登录...

    新开源云存储平台概述

    - **易用性**:对于初次接触云存储的用户来说,abiCloud因其简单的界面和易于使用的特性可能会更受欢迎。 - **成本效益**:不同的平台有着不同的定价策略,用户需要根据自身的预算和业务需求来选择最合适的解决方案...

    ThingsBoard安装易上手.doc

    在遇到下载依赖文件时可能遇到的问题,文档也给出了相应的解决方法,比如跳过license的校验和手动添加缺失的依赖等。 当环境配置和依赖下载都顺利完成后,接下来就是数据库数据的导入工作。文档中提到使用批处理...

    phpMyPrepaid-开源

    - **数据库**:MySQL作为数据存储引擎,提供高效的数据管理和检索功能。 - **FreeRadius集成**:通过RADIUS协议与FreeRadius服务器通信,实现身份验证、授权和计费功能。 ### 开源优势 1. **自由度高**:由于是...

Global site tag (gtag.js) - Google Analytics