`
heipark
  • 浏览: 2077971 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cassandra SliceQuery start和end参数使用注意事项

阅读更多
SliceQuery<String, String, Long> query = HFactory.createSliceQuery(cassandraService.getKeyspace(), StringSerializer.get(), StringSerializer.get(), LongSerializer.get());
query.setColumnFamily("your_cf_name");
query.setKey("your_rowkey");
ColumnSliceIterator<String, String, Long> iterator = new ColumnSliceIterator<String, String, Long>(query, "", "", false);

while (iterator.hasNext()) {
	HColumn<String, Long> element = iterator.next();
	String cfName = element.getName();
	String value = element.getValue();
	System.out.println(cfName + " " + element.getValue());
}

 

ColumnSliceIterator的四个参数:

  1. SliceQuery对象,它cf和rowkey信息
  2. cf 查询的start位置
  3. cf 查询的end位置
  4. 反序查询设置。这个参数非常有用,如果你的数据是按照时间顺序存储,反序查找可以快速获取最新数据。
测试数据(cfname value)
001_I 36121866
001_O 1001601781
002_I 37068144
002_O 962978185
003_I 35767262
003_O 889229008
004_I 32442817
004_O 823356694
005_I 34822166
005_O 792243001
006_I 29860696
006_O 756651507
007_I 30314166
007_O 709360466
008_I 29475122
008_O 677957355
009_I 29312435
009_O 641699077
010_I 27042011
010_O 599447449

 

测试一:正序查找模糊匹配

 查询条件:

start = "002", end="008", reversed=false(正序查找)

 

则查询结果为:

002_I 37068144
002_O 962978185
003_I 35767262
003_O 889229008
004_I 32442817
004_O 823356694
005_I 34822166
005_O 792243001
006_I 29860696
006_O 756651507
007_I 30314166
007_O 709360466

 

结论一:如果结束使用模糊匹配查找,则查询范围为 [ start, end )  ;start总是会找到第一个模糊(精确)匹配的

 

测试二:正序查找精确匹配

 查询条件:start = "002", end="008_I", reversed=false(正序查找)

返回数据
002_I 37068144
002_O 962978185
003_I 35767262
003_O 889229008
004_I 32442817
004_O 823356694
005_I 34822166
005_O 792243001
006_I 29860696
006_O 756651507
007_I 30314166
007_O 709360466
008_I 29475122

 

结论二:如果结束使用精确匹配,则查询范围为 [ start, end ]

 

测试三:反序查找模糊匹配

 

查询条件:start = "008", end="002", reversed=true(反序查找)

返回数据
007_O 709360466
007_I 30314166
006_O 756651507
006_I 29860696
005_O 792243001
005_I 34822166
004_O 823356694
004_I 32442817
003_O 889229008
003_I 35767262
002_O 962978185
002_I 37068144

 

结论三:反序查找模糊匹配边界为:( start, end ]

 

测试四:反序查找精确匹配

 

查询条件:start = "008_I", end="002", reversed=true

 

返回数据
008_I 29475122
007_O 709360466
007_I 30314166
006_O 756651507
006_I 29860696
005_O 792243001
005_I 34822166
004_O 823356694
004_I 32442817
003_O 889229008
003_I 35767262
002_O 962978185
002_I 37068144

 

结论四:反序查找精确匹配边界为:[ start, end ]

 

总结:

无论正向还是反向匹配,物理存储的end column匹配都是不能查询出模糊匹配的,只可以查询出精确匹配的内容。

 

正向:

end模糊匹配:[ start, end)

end精确匹配:[ start, end ]

 

反向

start模糊匹配:( start, end ]

start精确匹配:[ start, end ]  

 

--end

 

 

 

分享到:
评论

相关推荐

    cassandra3.9配置参数说明

    cassandra3.9配置文件参数中文说明,参数个数齐全,说明全面

    Cassandra在Windows上安装及使用方法

    Cassandra在Windows上安装及使用方法

    cassandra安装使用教程

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

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

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

    Cassandra应用和改进

    DTCC 2014 中国数据库技术大会 大数据技术探索和价值发现 Cassandra应用和改进 360 王峰

    nosql cassandra学习教程

    模式灵活 :使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。 真正的可扩展性 :Cassandra是纯粹意义上的水平扩展...

    cassandra 实战

    cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战cassandra 实战...

    php使用cassandra用到的phpcassa-0.1

    php使用cassandra用到的phpcassa-0.1

    cassandra_snapshotter, 在S3上,使用快照和增量备份备份cassandra节点的工具.zip

    cassandra_snapshotter, 在S3上,使用快照和增量备份备份cassandra节点的工具 cassandra_snapshotter在S3上使用快照和增量备份备份cassandra节点的工具项目的范围是使集群更容易备份到 S3,并合并快照和增量备份。...

    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

    The rising popularity of Apache Cassandra rests on its ability to handle very large data sets that include hundreds of terabytes -- and that's why this distributed database has been chosen by ...

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

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

    DevCenter cassandra客户端

    DevCenter cassandra客户端 DevCenter cassandra客户端 DevCenter cassandra客户端

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

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

    cassandra jdbc jar包

    根据cassandra 的一个client jdbc源码编译的官方jar包,没有任何修改,官方源码导出,可以使用sql形式进行操作cassandra,使用时请结合Cassandra其他必须jar包测试使用

    Learning Apache Cassandra - Second Edition

    By the end of this book, you'll be fully equipped to build powerful, scalable Cassandra database layers for your applications. What you will learn Install Cassandra Create keyspaces and tables with ...

    django-cassandra-engine, Django Cassandra引擎用于 Django的Cassandra后端.zip

    django-cassandra-engine, Django Cassandra引擎用于 Django的Cassandra后端 Django 引擎- Django的Cassandra后端使用Apache和 Django 框架开始你的旅程所需的所有工具 ! 特性最新的python-driver 集成,并可以选择...

    Apache Cassandra

    Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。...

    Cassandra1.2

    Cassandra在Windows上安装及使用方法(原创).txt ..

    cassandra介绍

    cassandra介绍

Global site tag (gtag.js) - Google Analytics