`
wing5jface
  • 浏览: 8118 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类

Nosql Cassandra 0.6 key值的区间查询例子

阅读更多
Nosql Cassandra 0.6 key值的区间查询 

小记:
传入条件 如key区间a至c 一种有a-d的数据
List<KeySlice> sliceList = client.get_range_slice(keyspace, parent,
predicate, "a", "d", 1000, ConsistencyLevel.ONE);


package com.sh2999.cassandra.testapp;

import java.util.List;
import org.apache.cassandra.thrift.Cassandra;
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.KeySlice;
import org.apache.cassandra.thrift.NotFoundException;
import org.apache.cassandra.thrift.SlicePredicate;
import org.apache.cassandra.thrift.SliceRange;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;

/**
 * key值的区间查询 这里可以传入条件 如key区间a至c 一种有a-d的数据
 * 
 * @since Cassandra 0.6
 * @author db2admin
 * 
 */
public class Cassandra647TestApp {
	/**
	 * 
	 * OrderPreservingPartitioner should be used.
	 */
	public static void main(String[] args) throws Exception {

		String keyspace = "Keyspace1";
		String cf = "sh2999.com";
		String key = "row1";
		byte[] columnName = "colname".getBytes("UTF-8");
		byte[] data = "testdata".getBytes("UTF-8");

		TTransport transport = new TSocket("localhost", 9160);
		TProtocol protocol = new TBinaryProtocol(transport);

		Cassandra.Client client = new Cassandra.Client(protocol);
		transport.open();

		ColumnPath path = new ColumnPath(cf);
		path.setColumn(columnName);

		client.insert(keyspace, key, path, data, System.currentTimeMillis(),
				ConsistencyLevel.ONE);
		key = "testrow2";
		byte[] data2 = "testdata".getBytes("UTF-8");
		client.insert(keyspace, key, path, data2, System.currentTimeMillis(),
				ConsistencyLevel.ONE);

		key = "a";
		byte[] data3 = "testdata".getBytes("UTF-8");
		client.insert(keyspace, key, path, data3, System.currentTimeMillis(),
				ConsistencyLevel.ONE);

		key = "b";
		byte[] data4 = "testdata".getBytes("UTF-8");
		client.insert(keyspace, key, path, data4, System.currentTimeMillis(),
				ConsistencyLevel.ONE);
		key = "c";
		byte[] data5 = "testdata".getBytes("UTF-8");
		client.insert(keyspace, key, path, data5, System.currentTimeMillis(),
				ConsistencyLevel.ONE);

		key = "d";
		byte[] data6 = "testdata".getBytes("UTF-8");
		client.insert(keyspace, key, path, data6, System.currentTimeMillis(),
				ConsistencyLevel.ONE);

		Thread.sleep(1000);

		ColumnPath rowpath = new ColumnPath(cf);
		rowpath.setColumn(columnName);

		// 删除通过
		// client.remove(keyspace, key, rowpath, System.currentTimeMillis(),
		// ConsistencyLevel.ONE);
		// Thread.sleep(1000);

		try {
			ColumnOrSuperColumn cosc = client.get(keyspace, key, path,
					ConsistencyLevel.ONE);

			System.out.println("Whoops! NotFoundException not thrown!");
		} catch (NotFoundException e) {

			System.out.println("OK, we got a NotFoundException");
		}

		ColumnParent parent = new ColumnParent(cf);
		SlicePredicate predicate = new SlicePredicate();
		SliceRange range = new SliceRange();
		range.start = new byte[0];
		range.finish = new byte[10];

		predicate.slice_range = range;
		// 这里可以传入条件 如key区间a至c 一种有a-d的数据
		List<KeySlice> sliceList = client.get_range_slice(keyspace, parent,
				predicate, "a", "d", 1000, ConsistencyLevel.ONE);

		for (KeySlice k : sliceList) {
			System.err.println("Found key " + k.key);
			if (key.equals(k.key)) {

				System.out.println("but key " + k.key
						+ "  should have been removed");
			}
		}
	}
}


其它关于Cassandra资料收集见:
http://www.sh2999.com/sh/posts/list/325.page
0
0
分享到:
评论
1 楼 cmzx3444 2010-05-26  
#   List<KeySlice> sliceList = client.get_range_slice(keyspace, parent, 
#                 predicate, "a", "d", 1000, ConsistencyLevel.ONE); 
"a", "d"是什么意思,是表示key 的头一个字母吗,我的key用的是数字,但查询“1”,“10”的时候出来的东西却不是按照1-10这个顺序的,我的key是“1”-“100”

相关推荐

    nosql cassandra学习教程

    其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常...

    java NoSql Cassandra hector

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

    Nosql - Cassandra 入门学习

    Cassandra是一款分布式NoSQL数据库系统,特别适合处理大量结构化和半结构化数据。它的设计灵感来源于Google的Bigtable,旨在提供高可用性、线性可扩展性和强一致性的数据存储解决方案。在互联网时代,随着大数据的...

    Cassandra nosql

    标题:Cassandra NoSQL 描述:为什么选择Cassandra NoSQL? Cassandra,一款分布式NoSQL数据库系统,由Avinash Lakshman与Prashant Malik共同设计开发,旨在解决大量数据存储需求及高并发访问场景下的挑战。在设计...

    NoSql Apache Cassandra 非关系型数据库

    为了简化查询操作,Cassandra 引入了 Cassandra Query Language(CQL),它的语法接近 SQL,使得开发者更容易上手。 总的来说,Apache Cassandra 是一个适合处理大规模数据的高性能分布式数据库,尤其适用于需要高...

    NoSQL数据库系统-Cassandra分布式结构化数据存储视频教程

    Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,...

    NoSQL Web Development with Apache Cassandra(2015)

    Apache Cassandra is the most commonly used NoSQL database written in Java and is renowned in the industry as the only NoSQL solution that can accommodate the complex requirements of today’s modern ...

    NoSQL数据库(如MongoDB,Cassandra):NoSQL数据库的查询语言-CQL.docx

    NoSQL数据库(如MongoDB,Cassandra):NoSQL数据库的查询语言-CQL.docx

    Cassandra实战 java NoSql

    Cassandra实战 java NoSql

    [NOSQL] Cassandra 数据库系统简单介绍.doc

    Apache Cassandra 是一种开源的分布式 NoSQL 数据库系统,设计用于处理大规模数据,具有高可用性、可扩展性和强一致性的特点。它最初由 Facebook 开发,借鉴了 Google BigTable 的数据模型和 Amazon Dynamo 的分布式...

    Cassandra-Undestanding:使用 NOSQL Cassandra 的示例

    探索 NoSQL 数据库 Cassandra。 此存储库包含学习如何使用 Cassandra 的示例。 为方便起见,将项目分为模块。 每个模块都展示了解决特定问题的方法。CheckCaster ##### cassandra 集群的基本健康检查。 部署集群后,...

    Cassandra查询分析器

    Cassandra 是一个分布式、高性能、可扩展的NoSQL数据库,广泛用于处理大规模的数据存储和检索任务。查询分析器是解析和处理 SQL 或 CQL(Cassandra Query Language)查询的模块,确保用户输入的查询语句能够正确地被...

    mbit-m03-dc03-cassandra:MBIT大数据2019-2020 NoSQL Cassandra案例研究(DC-03 TP-01)

    【标题】:“MBIT大数据2019-2020 NoSQL Cassandra案例研究(DC-03 TP-01)”是针对大数据处理场景下使用NoSQL数据库Cassandra的一个深度学习材料。这个案例研究旨在深入理解Cassandra在大数据环境中的应用和优势。 ...

    NoSQL应用场景及Cassandra架构分析.pptx

    为了解决这些问题,NoSQL引入了水平扩展(Sharding),通过Feature-based shard或Key-based shard的方式进行数据分片,但这也带来了牺牲强一致性的代价。 NoSQL数据库中有多种模型,例如键值(K-V)、文档、列族...

    NyaruDB, 在 Objective C 中,一个简单的NoSQL 数据库( key-value 对) 在iOS和 OS X 上,它运行.zip

    NyaruDB, 在 Objective C 中,一个简单的NoSQL 数据库( key-value 对) 在iOS和 OS X 上,它运行 #NyaruDB ###\(・ω・\)SAN値(/・ω・)/ピンチ !這いよれニャル子さんW !MIT许可证NyaruDB是 objective-c 中的...

    SSDB.zip_SSDB_nosql_数据库 KEY value

    SSDB 是&#12032 一个 C++ 语&#12180 言开发的&#12220 高性能开源 NoSQL 数据库服务器, &#12096 支持 Key-value, Key- hashmap, Key-zset(sorted set) 等数据结构, &#12055 十分适合存储数亿条级别的列表, 排序表等...

    NoSQL性能评估(MongoDB,HBase,Cassandra):哪种数据库最适合你的数据?

    非关系数据库(经常被称为NoSQL)的特点是弹性和可伸缩性。另外,它们可以存储大数据并与云计算系统协同工作。这些因素导致非关系数据库非常流行。在2013年,NoSQL数据库的种类达到了150多个,并且一直在增长,多种...

Global site tag (gtag.js) - Google Analytics