`

Cassandra

阅读更多

1.数据模型图

http://www.ibm.com/developerworks/cn/opensource/os-cn-cassandra/ 看那个keyspace图1

http://wiki.apache.org/cassandra/DataModel

 

2. Hector client example

 

package test.cassandra;

import java.util.Arrays;

import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.cassandra.service.ThriftKsDef;
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.ddl.ColumnFamilyDefinition;
import me.prettyprint.hector.api.ddl.ComparatorType;
import me.prettyprint.hector.api.ddl.KeyspaceDefinition;
import me.prettyprint.hector.api.exceptions.HectorException;
import me.prettyprint.hector.api.factory.HFactory;

/**
 * 
 * the code from https://github.com/rantav/hector/wiki/Getting-started-%285-minutes%29
 * @author 
 *
 */
public class TestHector {
	
	public static void main(String[] args) {
		
		Cluster cluster = HFactory.getOrCreateCluster("test-cluster","172.16.42.56:9160");
		//keyspace
		final String keyspaceName = "ksTest1";
		//column family
		final String cfUser = "User";
		//column pwd
		final String cUser_Pwd = "Pwd";
		//column realname		
		final String cUser_RealName = "RealName";
		
		try{
			
			KeyspaceDefinition keyspaceDef = cluster.describeKeyspace(keyspaceName);
			if (keyspaceDef == null){			
				//setup schema if not exist
				ColumnFamilyDefinition cfDef = HFactory.createColumnFamilyDefinition(keyspaceName,
						cfUser, 
						ComparatorType.UTF8TYPE);

				KeyspaceDefinition newKeyspace = HFactory.createKeyspaceDefinition(keyspaceName,                 
						ThriftKsDef.DEF_STRATEGY_CLASS,  
						1, 	
						Arrays.asList(cfDef));
				
				cluster.addKeyspace(newKeyspace, true);
			}
			
			//create a keyspace object
			Keyspace ksp = HFactory.createKeyspace(keyspaceName, cluster);
			
			
			ColumnFamilyTemplate<String, String> template = 
                new ThriftColumnFamilyTemplate<String, String>(ksp, cfUser, StringSerializer.get(), StringSerializer.get());			

			try {
				//a key
				final String keyUser1 = "zhang";
				
				//read
			    ColumnFamilyResult<String, String> res = template.queryColumns(keyUser1);
			    if (res.hasResults()){
			    	
			    	System.out.println("get data: " + keyUser1);
				    String value = res.getString(cUser_Pwd);
				    System.out.println(cUser_Pwd + ": " + value);
				    value = res.getString(cUser_RealName);
				    System.out.println(cUser_RealName + ": " + value);	
				    
				    //delete
				    try {
				    	System.out.println("del data");
				    	template.deleteRow(keyUser1);
				    	
				        //template.deleteColumn(keyRotuon, cUser_Pwd);
				    } catch (HectorException e) {
				    	e.printStackTrace();
				    }				    
			    }
			    else{
			    	//update
			    	System.out.println("no data, add one");
					// <String, String> correspond to key and Column name.
					ColumnFamilyUpdater<String, String> updater = template.createUpdater(keyUser1);
					updater.setString(cUser_Pwd, "123456");
					updater.setString(cUser_RealName, "zhangg");			
		
					try {
					    template.update(updater);
					} catch (HectorException e) {
						e.printStackTrace();
					}			    	
			    }			    

			} catch (HectorException e) {
				e.printStackTrace();
			}						
			
		}
		catch (Exception e) {
			e.printStackTrace();
		}
				
		cluster.getConnectionManager().shutdown();
		
		
	}
	
}
 

 

参考

http://cassandra.apache.org/

http://database.51cto.com/art/201006/203344.htm

http://www.fly3q.com/2010/11/cassandra-java-api-to-use.html

http://www.allthingsdistributed.com/

http://database.51cto.com/art/201005/202061.htm

 

 

分享到:
评论

相关推荐

    Cassandra(apache-cassandra-3.11.11-bin.tar.gz)

    Cassandra(apache-cassandra-3.11.11-bin.tar.gz)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身...

    cassandra-3.11.3下载

    Cassandra是一款分布式、高度可扩展的NoSQL数据库系统,由Facebook于2008年开源,并在随后被Apache软件基金会接纳为顶级项目。Cassandra的设计灵感来源于Google的Bigtable,旨在处理大规模的数据存储需求,特别适合...

    apache-cassandra-3.11.13

    Apache Cassandra 是一个分布式数据库系统,特别设计用于处理大规模数据,具备高可用性、线性可扩展性和优秀的性能。在这个"apache-cassandra-3.11.13"版本中,我们探讨的是Cassandra项目的其中一个稳定版本,它包含...

    Learning_Apache_Cassandra

    在本文档中,标题“Learning_Apache_Cassandra”透露了内容的主题,即学习Apache Cassandra。Cassandra是一个开源的NoSQL分布式数据库管理系统,它以高可用性和分布式架构著称。该书详细介绍了Cassandra的基本概念、...

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

    在本文中,我们将深入探讨如何将Spring Boot框架与Cassandra数据库集成,并利用Java Persistence API (JPA) 进行数据操作。Spring Boot以其简洁的配置和开箱即用的特性,已经成为Java开发中的首选框架之一。而...

    Cassandra的数据模型介绍

    amily 是 Cassandra 数据模型的核心组成部分,用来组织和管理 Column 和 SuperColumn。在 Cassandra 中,一个 ColumnFamily 相当于传统数据库中的表,但它不遵循严格的行与列的关系,而是以键值对的形式存储数据,...

    cassandra3.9配置参数说明

    Apache Cassandra是一种高性能的分布式NoSQL数据库管理系统,适用于大规模数据存储。Cassandra 3.9版本是对之前版本的一系列改进,包括对配置文件参数的增强。配置文件是Cassandra的核心部分,其中包含了控制集群...

    DevCenter cassandra客户端

    DevCenter 是一个强大的工具,专为数据科学家、开发人员和管理员设计,用于与Apache Cassandra数据库进行交互。这个工具提供了一个直观的用户界面,使得管理、查询和开发Cassandra数据库变得简单易行。Cassandra是一...

    Cassandra_概要指南

    ### Cassandra概要指南 #### 一、Cassandra的诞生与背景 Cassandra作为一个高可靠性的大规模分布式存储系统,它的诞生背景源于互联网Web2.0应用的飞速发展以及云计算技术的普及。随着用户数据量的爆炸性增长和对...

    Cassandra在饿了么的应用

    标题中提到的"Cassandra在饿了么的应用"意味着文章将讨论Apache Cassandra这个大规模分布式NoSQL数据库系统在著名的中国本地生活服务平台饿了么中的实际应用案例。描述中重复多次提及"Cassandra",这表明主题将专注...

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

    "基于Cassandra的实时气象数据分布式存储系统" 本文主要介绍了基于Cassandra的实时气象数据分布式存储系统的设计和实现。该系统采用Cassandra作为分布式存储解决方案,旨在满足气象数据存储的高可用性和性能要求。 ...

    Mastering.Apache.Cassandra.2nd.Edition.1784392618

    Title: Mastering Apache Cassandra, 2nd Edition Author: Nishant Neeraj Length: 322 pages Edition: 2 Language: English Publisher: Packt Publishing Publication Date: 2015-02-27 ISBN-10: 1784392618 ISBN-...

    Cassandra(apache-cassandra-4.0.1-bin.tar.gz)

    Cassandra(apache-cassandra-4.0.1-bin.tar.gz)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身...

    ycsb cassandra 压力测试工具

    **ycsb cassandra 压力测试工具** YCSB(Yahoo! Cloud Serving Benchmark)是 Yahoo 开源的一个云服务性能基准测试工具,它主要用于评估分布式数据库、键值存储和其他云服务的性能。Cassandra 是一个分布式NoSQL...

    java NoSql Cassandra hector

    Java NoSQL Cassandra Hector详解 在当今大数据时代,非关系型数据库(NoSQL)因其灵活性、高可扩展性和高性能,越来越受到开发者的青睐。Cassandra,作为NoSQL数据库家族中的重要一员,尤其在大规模分布式存储系统...

    cassandra cli 命令 大全

    Cassandra CLI是Apache Cassandra数据库系统的一个命令行工具,它提供了与Cassandra集群交互的能力,包括连接到远程节点、创建或更新模式(schema)、设置和检索记录及列,以及查询节点和集群元数据。这个工具主要...

    Cassandra实战.pdf

    在深入探讨《Cassandra实战.pdf》这一资源时,我们聚焦于Apache Cassandra数据库系统的全面解析与实践应用,这是一份详尽的技术文档,旨在为数据库管理员、开发者以及对分布式数据库技术感兴趣的专业人士提供深入...

    Java连接cassandra实现简单的增删查demo

    在Java编程环境中,连接Cassandra数据库并实现基本的增、删、查操作是常见的任务。Cassandra是一款分布式NoSQL数据库,常用于处理大规模数据。在这个示例中,我们将探讨如何通过Java来操作Cassandra数据库。 首先,...

Global site tag (gtag.js) - Google Analytics