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

cassandra2.0 如何实现分页查询

 
阅读更多

本文用到的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 Document

    Cassandra 2.0版本文档详细介绍了该版本的新特性,CQL(Cassandra Query Language)的使用,其架构的理解,内部通信机制,故障检测与恢复,数据分布和复制,分区器,网络拓扑策略(Snitches),客户端请求处理,集群...

    开源依赖第二部分,Cassandra工程所需要的开源项目的所有依赖

    在Cassandra中,可能使用ANTLR来解析输入的查询语句,生成解析树,从而进行后续的数据库操作。 3. **Ant** (ant-master.zip): Apache Ant是一个基于Java的构建工具,它用XML来描述构建过程。在Cassandra的构建流程...

    cassandra-2.0.10

    用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter等知名Web 2.0网站所...

    Cassandra 2.1.2 源代码 part2

    Cassandra 2.1.2 源代码 part2 已经编译

    HandsOnCassandraChat:Cassandra 2.0 简介

    Cassandra 2.1 练习 介绍 这个动手实践将使您逐步使用 TDD,使用以下方法创建一个有效的聊天应用程序 + 动手操作将侧重于数据建模部分,您需要 了解数据模型(表格) 使用实施服务以使测试通过 所有前端,以及 ...

    java实现cassandra高级操作之分页实例(有项目具体需求)

    Java 实现 Cassandra 高级操作的关键之一是分页查询,特别是在处理大数据量的场景中,分页能够有效地提高性能和用户体验。Cassandra 的分页机制与传统的数据库如 MySQL 不同,它不能直接通过页码来获取指定页的数据...

    Cassandra查询分析器

    **Cassandra 查询分析器详解** Cassandra 查询分析器是 Apache Cassandra 数据库系统中的核心组件之一,它在数据查询过程中起着至关重要的作用。Cassandra 是一个分布式、高性能、可扩展的NoSQL数据库,广泛用于...

    Apache Cassandra

    Apache Cassandra是一个开源的分布式NoSQL数据库管理系统,它最初由Facebook开发,并在2008年被捐献给了Apache软件基金会。Cassandra旨在解决大规模数据存储的问题,特别适用于那些需要高性能、可伸缩性以及高可用性...

    cassandra-cql3-pagination:本教程代码显示如何仅使用CQL3在Cassandra上进行分页

    6. **最佳实践**: 教程可能还讨论了在Cassandra中实现分页的最佳实践,包括避免使用`ALLOW FILTERING`,理解分区键设计对分页效率的影响,以及在设计应用程序时考虑到分页需求。 为了更好地理解这些概念,你可以...

    docker-cassandra-cluster:使用docker的Cassandra的基本集群脚本

    docker-cassandra-群集使用docker的Cassandra的基本集群脚本。 尽管您可以将其启动到docker-machine集群上,但这是为本地开发而设计的。 如果您确实踏上了那趟旅程,请特别注意compose yaml中的端口规格。 它可能...

    Java连接cassandra实现简单的增删查demo

    在Java编程环境中,连接Cassandra数据库并实现基本的增、删、查操作是常见的任务。Cassandra是一款分布式NoSQL数据库,常用于处理大规模数据。在这个示例中,我们将探讨如何通过Java来操作Cassandra数据库。 首先,...

    cassandra 学习

    - **2.0版**(2013年9月发布):新增了基于Paxos共识协议的轻量级事务、触发器、改进的压缩机制、CQL分页支持、预编译语句支持以及SELECT列别名支持。 #### 二、Cassandra架构与CQL **Cassandra的数据模型**包括...

    apache-cassandra-2.0.1-bin.tar

    1. CQL3支持:Cassandra 2.0引入了更强大的Cassandra Query Language (CQL)版本3,提供了更接近SQL的查询体验。 2. SSTable级别的压缩:在2.0.1版本中,数据存储格式SSTable支持数据压缩,降低了存储空间需求。 3. ...

    Learning_Apache_Cassandra

    在本文档中,标题“Learning_Apache_Cassandra”透露了内容的主题,即学习Apache Cassandra。...通过阅读本书,读者应能够掌握Cassandra的核心概念,能够在实际项目中有效地实现和使用Cassandra来存储和检索数据。

    cassandra cql 3.1

    文档《CQL for Cassandra 2.x》主要介绍了在Cassandra 2.1和2.0.x版本中使用CQL的指导。本文档详细阐述了CQL的数据建模、查询方法、数据类型、索引使用、轻量级事务处理、一致性级别跟踪以及一致性对性能影响等方面...

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

    用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等知名Web 2.0网站所...

    spring-data-cassandra:Cassandra 的 Spring Data 模块的非官方实现

    这是一个用于 Cassandra 的 SpringFramework Data 项目,它通过用于 Cassandra 2.0 的官方 DataStax 2.x Java使用二进制 CQL3 协议。 支持 SpringFramework Data Repositories 中的原生 CQL3 查询。版本当前版本: ...

    Cassandra_概要指南

    Cassandra作为一个高可靠性的大规模分布式存储系统,它的诞生背景源于互联网Web2.0应用的飞速发展以及云计算技术的普及。随着用户数据量的爆炸性增长和对数据处理速度的需求日益提升,传统的关系型数据库在面对超大...

    Cassandra架构与应用

    Cassandra,作为一款分布式数据库,其设计初衷旨在应对互联网大规模Web2.0应用所带来的挑战,尤其是针对那些需要高并发处理、海量数据存储和快速查询能力的场景,如社交网络(SNS)等。在这些场景下,传统的关系型...

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

    用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等知名Web 2.0网站所...

Global site tag (gtag.js) - Google Analytics