本文用到的cassandra的版本是2.0.6版
1、前提和约束
CREATE TABLE test(a INT,b INT,c INT, d string,e string,PRIMARY KEY(a,b,c)); CREATE INDEX ON test(d);
cassandra的查询具有以下约束:
第一主键 只能用=号查询
第二主键 支持= > < >= <= 但是必须后面加 ALLOW FILTERING
索引列 只支持=号
2、分页查询
首先使用limit 关键字来限制查询结果的条数 进行分页。
进行翻页是个比较复杂的过程。
需要明确查询出来的结果是按token(a) 来排序的,其次是按(b,c)来排序的。
假设无任何查询条件的查询,第一次查询语句是
SELECT * FROM test LIMIT 10;
出来的第10条记录的主键需要记录下来,假设为
a10 b10 c10
那么进行第二次查询的时候,语句应该这样写:
SELECT * FROM test WHERE token(a)=token(a10) AND (b,c)>(b10,c10) LIMIT 10;
假设查出来只有6条,
那么需要继续查出来4条,语句应该这样写:
select * from test where token(a)>token(a10) limit 4;
如果后面扔有数据,第20条记录的主键也要记录下来,假设为
a20 b20 c20
假设要继续翻页,重复第二次查询的过程即可。
3、总结
cassandra 的分页查询,主要是通过查询结果的默认的排列顺序来实现的,本文的例子是没有查询条件的情况,
有查询条件的情况,也是一样的。你只要知道了cassandra的默认查询结果的排序规则,就知道如何具体的分页查询了。
相关推荐
Cassandra 2.0版本文档详细介绍了该版本的新特性,CQL(Cassandra Query Language)的使用,其架构的理解,内部通信机制,故障检测与恢复,数据分布和复制,分区器,网络拓扑策略(Snitches),客户端请求处理,集群...
在Cassandra中,可能使用ANTLR来解析输入的查询语句,生成解析树,从而进行后续的数据库操作。 3. **Ant** (ant-master.zip): Apache Ant是一个基于Java的构建工具,它用XML来描述构建过程。在Cassandra的构建流程...
用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter等知名Web 2.0网站所...
Cassandra 2.1.2 源代码 part2 已经编译
Cassandra 2.1 练习 介绍 这个动手实践将使您逐步使用 TDD,使用以下方法创建一个有效的聊天应用程序 + 动手操作将侧重于数据建模部分,您需要 了解数据模型(表格) 使用实施服务以使测试通过 所有前端,以及 ...
Java 实现 Cassandra 高级操作的关键之一是分页查询,特别是在处理大数据量的场景中,分页能够有效地提高性能和用户体验。Cassandra 的分页机制与传统的数据库如 MySQL 不同,它不能直接通过页码来获取指定页的数据...
**Cassandra 查询分析器详解** Cassandra 查询分析器是 Apache Cassandra 数据库系统中的核心组件之一,它在数据查询过程中起着至关重要的作用。Cassandra 是一个分布式、高性能、可扩展的NoSQL数据库,广泛用于...
Apache Cassandra是一个开源的分布式NoSQL数据库管理系统,它最初由Facebook开发,并在2008年被捐献给了Apache软件基金会。Cassandra旨在解决大规模数据存储的问题,特别适用于那些需要高性能、可伸缩性以及高可用性...
6. **最佳实践**: 教程可能还讨论了在Cassandra中实现分页的最佳实践,包括避免使用`ALLOW FILTERING`,理解分区键设计对分页效率的影响,以及在设计应用程序时考虑到分页需求。 为了更好地理解这些概念,你可以...
docker-cassandra-群集使用docker的Cassandra的基本集群脚本。 尽管您可以将其启动到docker-machine集群上,但这是为本地开发而设计的。 如果您确实踏上了那趟旅程,请特别注意compose yaml中的端口规格。 它可能...
在Java编程环境中,连接Cassandra数据库并实现基本的增、删、查操作是常见的任务。Cassandra是一款分布式NoSQL数据库,常用于处理大规模数据。在这个示例中,我们将探讨如何通过Java来操作Cassandra数据库。 首先,...
- **2.0版**(2013年9月发布):新增了基于Paxos共识协议的轻量级事务、触发器、改进的压缩机制、CQL分页支持、预编译语句支持以及SELECT列别名支持。 #### 二、Cassandra架构与CQL **Cassandra的数据模型**包括...
1. CQL3支持:Cassandra 2.0引入了更强大的Cassandra Query Language (CQL)版本3,提供了更接近SQL的查询体验。 2. SSTable级别的压缩:在2.0.1版本中,数据存储格式SSTable支持数据压缩,降低了存储空间需求。 3. ...
在本文档中,标题“Learning_Apache_Cassandra”透露了内容的主题,即学习Apache Cassandra。...通过阅读本书,读者应能够掌握Cassandra的核心概念,能够在实际项目中有效地实现和使用Cassandra来存储和检索数据。
文档《CQL for Cassandra 2.x》主要介绍了在Cassandra 2.1和2.0.x版本中使用CQL的指导。本文档详细阐述了CQL的数据建模、查询方法、数据类型、索引使用、轻量级事务处理、一致性级别跟踪以及一致性对性能影响等方面...
用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等知名Web 2.0网站所...
这是一个用于 Cassandra 的 SpringFramework Data 项目,它通过用于 Cassandra 2.0 的官方 DataStax 2.x Java使用二进制 CQL3 协议。 支持 SpringFramework Data Repositories 中的原生 CQL3 查询。版本当前版本: ...
Cassandra作为一个高可靠性的大规模分布式存储系统,它的诞生背景源于互联网Web2.0应用的飞速发展以及云计算技术的普及。随着用户数据量的爆炸性增长和对数据处理速度的需求日益提升,传统的关系型数据库在面对超大...
Cassandra,作为一款分布式数据库,其设计初衷旨在应对互联网大规模Web2.0应用所带来的挑战,尤其是针对那些需要高并发处理、海量数据存储和快速查询能力的场景,如社交网络(SNS)等。在这些场景下,传统的关系型...
用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等知名Web 2.0网站所...