`
longzhun
  • 浏览: 364260 次
  • 性别: 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 offical Document

    开源依赖第二部分,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数据库,广泛用于...

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

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

    Apache Cassandra

    用于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. ...

    nosql cassandra学习教程

    很多方面都可以称之为Dynamo 2.0。 功能  Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读...

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

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

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

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

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

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

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

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

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

    此外,Spring Data Cassandra还支持更复杂的查询,如使用`@Query`注解进行CQL查询,或者利用`Specification`进行动态查询。 集成Spring Boot和Cassandra,使用JPA方式,不仅简化了数据访问层的代码,同时也保持了与...

    cassandra cql 3.1

    This document describes CQL for Cassandra 2.1 and 2.0.x.

    Laravel开发-cassandra

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

    Cassandra JDBC Driver

    6. **事务支持**:尽管Cassandra本身不完全支持ACID事务,但Cassandra JDBC Driver提供了一种方式来处理原子性和一致性,使得在一定程度上可以在Cassandra上实现事务操作。 7. **异常处理**:当发生错误时,...

    Cassandra JDBC Driver 0.8.2

    Cassandra JDBC Driver 0.8.2 是一个专门为 Cassandra 数据库设计的 Java 数据库连接器(JDBC)驱动...其易用性和广泛的支持使得开发人员可以更轻松地将 Cassandra 集成到他们的应用程序中,实现高效的数据访问和管理。

Global site tag (gtag.js) - Google Analytics