`
heipark
  • 浏览: 2096959 次
  • 性别: 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配置参数说明

    配置文件是Cassandra的核心部分,其中包含了控制集群行为和性能的参数。了解这些配置参数对部署和优化Cassandra集群至关重要。 首先,cluster_name参数定义了集群的名称,这有助于防止不同逻辑集群中的机器相互加入...

    Cassandra在Windows上安装及使用方法

    ### 高级配置与注意事项 - **性能优化**:根据服务器硬件配置调整Cassandra配置文件中的内存分配、磁盘I/O等参数,以获得最佳性能。 - **安全设置**:考虑对网络连接、身份验证等方面进行安全加固,防止未授权访问...

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

    然而,需要注意的是,Cassandra作为NoSQL数据库,其数据模型与传统的关系型数据库有所不同,设计时应遵循Cassandra的数据分布和分区策略,以充分利用其性能优势。 总之,Spring Boot与Cassandra的集成结合了Spring ...

    Cassandra使用手册

    在集群模式下,每个节点都必须正确配置cassandra.yaml文件中的参数,尤其是cluster_name(集群名)和seeds(种子节点)这两个参数要保持一致,以保证各个节点能够互相发现并加入集群。 Cassandra的数据模型是列族...

    cassandra安装使用教程

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

    php使用cassandra用到的phpcassa-0.1

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

    Cassandra应用和改进

    Cassandra的设计灵感来源于亚马逊的Dynamo和谷歌的BigTable,因此它继承了这些系统的优点,比如分布式的架构、没有单点故障的高可用性,以及能够水平扩展的可扩展性。 在DTCC 2014中国数据库技术大会上,360的...

    java NoSql Cassandra hector

    Java NoSQL Cassandra Hector...了解和掌握Hector的使用方法,能够帮助开发者更好地利用Cassandra的分布式特性和强大的数据处理能力。在实际项目中,结合Cassandra的特性进行优化,可以实现更高效的数据存储和检索。

    Learning_Apache_Cassandra

    该书详细介绍了Cassandra的基本概念、安装、操作语言CQL的使用,以及如何高效地设计和管理数据模型。 从描述中我们可以得知,文档中可能包括了为什么选择Cassandra而不是其他数据库系统的比较,Cassandra提供的核心...

    ycsb cassandra 压力测试工具

    Cassandra 使用一致性哈希和分布式数据存储,可以实现数据的全局一致性,并能应对节点故障。 ### YCSB 和 Cassandra 结合使用 1. **安装与配置** - 下载 YCSB 包:YCSB 提供了针对 Cassandra 的绑定模块,您已...

    cassandra cli 命令 大全

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

    cassandra-3.11.3下载

    再者,Cassandra使用Gossip协议进行节点间的通信,这种协议允许节点间快速传播状态信息,从而实现故障检测和负载均衡。在3.11.3中,Gossip协议的性能和稳定性得到了提升,能够更快地发现并应对节点故障,保证服务的...

    DevCenter cassandra客户端

    通过使用DevCenter,开发人员和管理员能够更加高效地管理他们的Cassandra环境,简化数据库操作,提高生产力,同时也降低了出错的可能性。这个工具对于那些需要处理大量实时数据和追求高性能、高可用性的应用来说,是...

    cassandra-operator,apache-cassandra的kubernetes算子.zip

    Cassandra-Operator是针对Apache Cassandra在Kubernetes集群中部署和管理的一个开源项目。...通过深入理解和有效使用Cassandra-Operator,用户可以更高效、更稳定地部署和扩展自己的Cassandra集群。

    Cassandra1.2

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

    Cassandra在饿了么的应用

    8. **CQL(Cassandra Query Language)**:CQL语言类似于SQL语言,提供了DDL和DML操作支持,让使用者可以像操作SQL数据库一样操作Cassandra。 9. **Cassandra实践和整合**:涉及到饿了么如何将Cassandra与大数据...

    Laravel开发-cassandra

    在本文中,我们将深入探讨如何在Laravel框架中集成Cassandra数据库,并利用Laravel的Cassandra雄辩模型和查询生成器来实现高效的数据操作。Laravel是一个流行的PHP框架,以其优雅的设计和强大的功能深受开发者喜爱。...

Global site tag (gtag.js) - Google Analytics