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的四个参数:
- SliceQuery对象,它cf和rowkey信息
- cf 查询的start位置
- cf 查询的end位置
- 反序查询设置。这个参数非常有用,如果你的数据是按照时间顺序存储,反序查找可以快速获取最新数据。
测试数据(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
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
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
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
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
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
相关推荐
配置文件是Cassandra的核心部分,其中包含了控制集群行为和性能的参数。了解这些配置参数对部署和优化Cassandra集群至关重要。 首先,cluster_name参数定义了集群的名称,这有助于防止不同逻辑集群中的机器相互加入...
### 高级配置与注意事项 - **性能优化**:根据服务器硬件配置调整Cassandra配置文件中的内存分配、磁盘I/O等参数,以获得最佳性能。 - **安全设置**:考虑对网络连接、身份验证等方面进行安全加固,防止未授权访问...
然而,需要注意的是,Cassandra作为NoSQL数据库,其数据模型与传统的关系型数据库有所不同,设计时应遵循Cassandra的数据分布和分区策略,以充分利用其性能优势。 总之,Spring Boot与Cassandra的集成结合了Spring ...
在集群模式下,每个节点都必须正确配置cassandra.yaml文件中的参数,尤其是cluster_name(集群名)和seeds(种子节点)这两个参数要保持一致,以保证各个节点能够互相发现并加入集群。 Cassandra的数据模型是列族...
1、cassandra的安装、维护使用 2、java操作cassandra实例 3、cql使用详解
5. **数据模型**:理解Cassandra的数据模型,如超级列(Super Column)、列族和行键(Row Key),对于有效使用phpcassa至关重要。 6. **安装和配置**:在PHP项目中集成phpcassa,需要正确配置Cassandra服务器地址、...
Cassandra的设计灵感来源于亚马逊的Dynamo和谷歌的BigTable,因此它继承了这些系统的优点,比如分布式的架构、没有单点故障的高可用性,以及能够水平扩展的可扩展性。 在DTCC 2014中国数据库技术大会上,360的...
Java NoSQL Cassandra Hector...了解和掌握Hector的使用方法,能够帮助开发者更好地利用Cassandra的分布式特性和强大的数据处理能力。在实际项目中,结合Cassandra的特性进行优化,可以实现更高效的数据存储和检索。
该书详细介绍了Cassandra的基本概念、安装、操作语言CQL的使用,以及如何高效地设计和管理数据模型。 从描述中我们可以得知,文档中可能包括了为什么选择Cassandra而不是其他数据库系统的比较,Cassandra提供的核心...
Cassandra 使用一致性哈希和分布式数据存储,可以实现数据的全局一致性,并能应对节点故障。 ### YCSB 和 Cassandra 结合使用 1. **安装与配置** - 下载 YCSB 包:YCSB 提供了针对 Cassandra 的绑定模块,您已...
Cassandra CLI是Apache Cassandra数据库系统的一个命令行工具,它提供了与Cassandra集群交互的能力,包括连接到远程节点、创建或更新模式(schema)、设置和检索记录及列,以及查询节点和集群元数据。这个工具主要...
再者,Cassandra使用Gossip协议进行节点间的通信,这种协议允许节点间快速传播状态信息,从而实现故障检测和负载均衡。在3.11.3中,Gossip协议的性能和稳定性得到了提升,能够更快地发现并应对节点故障,保证服务的...
Cassandra-Operator是针对Apache Cassandra在Kubernetes集群中部署和管理的一个开源项目。...通过深入理解和有效使用Cassandra-Operator,用户可以更高效、更稳定地部署和扩展自己的Cassandra集群。
通过使用DevCenter,开发人员和管理员能够更加高效地管理他们的Cassandra环境,简化数据库操作,提高生产力,同时也降低了出错的可能性。这个工具对于那些需要处理大量实时数据和追求高性能、高可用性的应用来说,是...
Cassandra 1.2 提供了多种性能优化选项,如调整内存分配、使用JVM参数优化、调整批处理大小等,用户可以根据实际需求进行调整,以获得最佳性能。 ### 10. 安全性 虽然Cassandra 1.2 在安全性方面相对较弱,但可以...
8. **CQL(Cassandra Query Language)**:CQL语言类似于SQL语言,提供了DDL和DML操作支持,让使用者可以像操作SQL数据库一样操作Cassandra。 9. **Cassandra实践和整合**:涉及到饿了么如何将Cassandra与大数据...
在本文中,我们将深入探讨如何在Laravel框架中集成Cassandra数据库,并利用Laravel的Cassandra雄辩模型和查询生成器来实现高效的数据操作。Laravel是一个流行的PHP框架,以其优雅的设计和强大的功能深受开发者喜爱。...