`

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
分享到:
评论

相关推荐

    基于Cassandra的实时气象数据分布式存储系统.pdf

    每个数据项都会被复制到N个节点(N是通过参数配置的副本因子),系统利用数据的复制机制将存储在各节点上的数据复制到其他结点上,实现了数据的高度可获得性和安全性。 1.2 数据模型 Cassandra使用宽列存储模型,...

    Cassandra的数据模型介绍

    amily 是 Cassandra 数据模型的核心组成部分,用来...其分布式架构和时间戳机制保证了高可用性和数据一致性。尽管在理解和使用上可能需要一些学习曲线,但 Cassandra 的这些特性使其成为大数据领域中的一个重要选择。

    在Spark上使用CLI读取Cassandra数据

    在Spark上使用CLI读取Cassandra数据是一种常见的大数据处理场景,Cassandra是一个分布式NoSQL数据库,而Spark则是一个用于大规模数据处理的计算框架。这两者的结合可以提供高效、可扩展的数据处理能力。以下是对这个...

    java导出cassandra数据

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

    存储数据(cassandra)

    **Cassandra:分布式NoSQL数据库系统** Cassandra是一款高度可扩展、分布式的NoSQL数据库系统,由Apache软件基金会开发并维护。...深入了解和熟练掌握Cassandra的使用,对于构建高可用、高性能的分布式系统至关重要。

    spring boot与cassandra集成,使用JPA方式。

    在本文中,我们将深入探讨如何将Spring Boot框架与Cassandra数据库集成,并利用Java Persistence API (JPA) 进行数据操作。...在实际项目中,可以根据具体需求调整配置和数据模型,以实现高效且可靠的数据库操作。

    Cassandra数据模型

    其数据模型是Cassandra的核心特性之一,它不同于传统的SQL数据库,而是基于列族(Column Family)的NoSQL数据模型。 1. **列族与超级列** - **列族(Column Family)**:类似于关系数据库中的表,是数据存储的基本...

    Cassandra使用手册

    Cassandra是一种高性能、分布式的NoSQL数据库系统,专为提供高可用性而设计,特别适合于大数据...手册的目的是为了让用户能够系统地理解和掌握Cassandra的使用方法,从而在实际的项目中高效地利用Cassandra来处理数据。

    cassandra数据存储系统

    为了减少磁盘空间占用并提高读写效率,Cassandra 还实现了高效的垃圾回收和数据压缩机制。 #### 五、总结 Cassandra 作为一款高度可扩展、高可用性的分布式存储系统,在处理大规模结构化数据方面表现出了卓越的...

    Cassandra应用和改进

    首先,他们给出了Cassandra集群的现状,包括存储规模、主机规模、备份规模和数据规模,以及单集群规模的发展趋势。这说明随着业务量的增长,360在Cassandra的应用上已经达到了相当庞大的规模,这要求数据库具有非常...

    Cassandra 的数据rollbock机制

    在Cassandra中,数据rollbock机制是一个重要的概念,它涉及到数据存储、数据管理和优化。下面将详细介绍Cassandra的数据rollbock机制及其相关知识点。 1. 数据模型:Cassandra的数据模型基于列族(ColumnFamily),...

    php使用cassandra用到的phpcassa-0.1

    5. **数据模型**:理解Cassandra的数据模型,如超级列(Super Column)、列族和行键(Row Key),对于有效使用phpcassa至关重要。 6. **安装和配置**:在PHP项目中集成phpcassa,需要正确配置Cassandra服务器地址、...

    Cassandra1.2

    Cassandra 1.2 提供了多种性能优化选项,如调整内存分配、使用JVM参数优化、调整批处理大小等,用户可以根据实际需求进行调整,以获得最佳性能。 ### 10. 安全性 虽然Cassandra 1.2 在安全性方面相对较弱,但可以...

    Cassandra实战.pdf

    Cassandra通过一致性级别(Consistency Level)来控制读写操作的一致性要求,不同的业务场景可以根据需求选择最适合的一致性级别,以平衡性能和数据完整性。例如,对于写操作,可以选择将数据同步复制到多个节点上,...

    Cassandra架构与应用

    这一机制确保了高写入性能和数据的持久性。对于读写操作,Cassandra支持多数据中心部署,数据可以在任意节点读写,不存在单点故障,同时提供了最终一致性,意味着在没有其他写入操作的情况下,数据最终会达到一致...

    cassandra安装使用教程

    1、cassandra的安装、维护使用 2、java操作cassandra实例 3、cql使用详解

    Cassandra文档

    通过深入学习Cassandra文档,开发者和管理员能够掌握如何高效地使用和管理这个强大的分布式数据库系统,满足大数据场景下的复杂需求。无论是构建大规模的数据仓库还是实时分析应用,Cassandra都提供了坚实的基础。

    cassandra-3.11.3下载

    Cassandra的设计灵感来源于Google的Bigtable,旨在处理大规模的数据存储需求,特别适合大数据场景和互联网应用。在Cassandra 3.11.3版本中,我们看到了许多优化和改进,使其成为企业级应用的可靠选择。 首先,...

Global site tag (gtag.js) - Google Analytics