Cassandra BETWEEN 和 ORDER BY 操作

2024-01-31

我想在 Cassandra-0.7.8 上执行 SQL 操作,例如 BETWEEN、ORDER BY 和 ASC/DSC 顺序。

据我所知,Cassandra-0.7.8 并不直接支持这些操作。请让我知道有没有办法通过调整二级索引来完成这些?

下面是我的数据模型设计。

Emp(KS){
    User(CF):{
         bsanderson(RowKey): { eno, name, dept, dob, email }
     prothfuss(RowKey): { eno, name, dept, dob, email }
}
}

Queries:

 - Select * from emp where dept='IT' ORDER BY dob ASC. 
 - Select * from emp where eno BETWEEN ? AND ? ORDER BY dob ASC.

提前致谢。

Regards,

塔米扎南


Select * from emp where dept='IT' ORDER BY dob ASC.

您可以使用内置二级索引选择“dept”列具有特定值的行。但是,行将按照分区程序(RandomPartitioner 或 OrderPreservingPartitioner)确定的顺序返回。要按任意值(例如 DOB)排序,您需要在客户端进行排序。

或者,您可以直接支持此查询,方法是为每个部门设置一行,为每个员工设置一列,按 DOB 键控(并因此排序)。但要小心共同的生日!并且您仍然需要后续查询来检索所选员工的其他数据(SELECT * 的结果),除非您进行非规范化以便所需的数据也存储在索引中。

Select * from emp where eno BETWEEN ? AND ? ORDER BY dob ASC.

Cassandra 中的二级索引查询至少需要一个等式项,因此我认为您可以执行 dept='IT' AND eno >=X AND eno

您可以通过创建自己的索引行来完成此操作,其中每个员工有一列,以员工编号为键,并使用适当的比较器,以便所有列自动按员工编号顺序排序。然后,您可以对该行执行范围查询以获取匹配员工的列表 - 但您需要进一步查询来检索每个员工的其他数据(出生日期等),除非您进行非规范化以便所需的数据也存储在索引中。您仍然需要在客户端进行 dob 订购。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cassandra BETWEEN 和 ORDER BY 操作 的相关文章

  • 使用 pycassa 读取 Cassandra 1.2 表

    使用卡桑德拉 1 2 我按以下方式使用 CQL 3 创建了一个表 CREATE TABLE foo user text PRIMARY KEY emails set
  • Apache Cassandra 如何进行聚合操作?

    总的来说 我对 Apache Cassandra 和 nosql 相当陌生 在 SQL 中 我可以执行聚合操作 例如 SELECT country sum age count AS averageAge FROM people GROUP
  • 删除键空间挂起

    问题 drop keyspace MyKeyspace hangs 环境 这是 virtualbox 中的 Ubuntu 12 04 64 位 运行单个 Cassandra 实例 在开发计算机上 卡桑德拉是 1 1 6 myuser myh
  • Datastax Cassandra OpsCenter 服务未在 Windows 7 上启动

    我是卡桑德拉的新手 我按照中提到的说明在 Windows 7 64 位上安装了 DataStax Cassandra 社区版DataStax 社区版 http www datastax com 2012 01 getting started
  • 如何使用 javascript 从 UUID v1 (TimeUUID) 中提取时间戳?

    我使用 Cassandra DB 和 Nodejs 的 Helenus 模块来操作它 我有一些包含 TimeUUID 列的行 如何在javascript中从TimeUUID获取时间戳 这个库 UUID 至今 https github com
  • Cassandra data stax 查询生成器更新

    我正在尝试编写一个简单的更新查询 更新表 set col1 val1 col2 val2 where col3 val3 您能否提供一个使用查询生成器 API 在 Cassandra 中编写简单 UPDATE 的示例 试试这个 v1 x Q
  • Hector 在执行incrementCounter 后获取结果计数器值

    我们正在执行以下操作来更新计数器的值 现在我们想知道是否有一种简单的方法可以立即取回更新的计数器值 mutator incrementCounter rowid1 cf1 counter1 value Cassandra thrift AP
  • InvalidRequestException(为什么:empid 如果包含 Equal,则不能被多个关系限制)

    这是关于我从 Apache Spark 查询 Cassandra 时遇到的问题 Spark 的正常查询工作正常 没有任何问题 但是当我使用关键条件进行查询时 出现以下错误 最初 我尝试查询复合键列族 它也给出了与下面相同的问题 由以下原因引
  • cassandra 中的突变是什么?

    cassandra 中的突变是什么 它在做什么 我没有找到任何有关它的完整信息 您可以回答或分享带有手册或说明的链接吗 谢谢 Mutation 是一个由 thrift 生成的类 定义在cassandra thrift文件 您可以在以下位置找
  • 错误:无法连接到 cassandra 服务器。未配置的表

    我正在尝试使用这个简单的代码通过 python 的 cassandra driver 连接到在本地桌面上运行的 cassandra from cassandra cluster import Cluster cluster Cluster
  • Cassandra 按非聚集键对结果进行排序

    我们使用 Cassandra 的用例是显示前 10 个recent博客文章的访问者 以下是 Cassandra 表定义 CREATE TABLE blogs by visitor blogposturl text visitor text
  • 我可以在 Cassandra 2.1 中对集合进行多重查询吗?

    在 Cassandra 2 1 中 我们可以通过在列上创建二级索引来查询集合 cqlsh play gt select from songs where tags contains t1 id tags title e99f8f30 d21
  • 不使用 CPU 时 Cassandra 超时

    我使用 Phantom DSL 和 Datastax Cassandra 驱动程序时遇到 Cassandra 超时 然而 Cassandra 似乎并没有超载 以下是我得到的异常 com datastax driver core except
  • 如何过滤 Cassandra 中的数据?

    我在应用程序中使用 mySQL 一段时间了 收集的数据越多 速度就越慢 所以我一直在研究 NOSQL 选项 我在 mySQL 中拥有的东西之一是从一堆连接创建的视图 该应用程序在网格中显示所有重要信息 用户可以在此数据集上选择范围 进行搜索
  • Cassandra .setFetchSize() on 语句不被遵守

    我想在UI上实现分页 所以我这样设置fetchSize boundStatement setFetchSize 20 但 setFetchSize 不被尊重 截至目前 我的表有 400 行 并且所有 400 行均已检索 当我使用检索下一组行
  • Cassandra cqlsh“无法连接到任何服务器”

    在命令行上执行 cqlsh bat 时收到以下消息 Connection error Unable to connect to any servers 127 0 0 1 ProtocolError cql version 3 3 0 is
  • cassandra-1.1.2 的推荐 cassandra gui 客户端是什么 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一些 cassandra 的 gui 客户端 如 sqlDeveloper 来调用一些基本方法 并运行 cql 查询 Dbeav
  • Cassandra LWT 读取

    据我了解 LWT 插入始终以 SERIAL 一致性级别完成 如果为 true 这是否意味着读取作为 LWT 插入的行可以安全地以 ANY 一致性级别读取 换句话说 我假设 LWT 插入是完全一致的 使得任何后续读取也完全一致 无论一致性级别
  • 什么时候不应该使用 Cassandra? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 相关话题已经有很多讨论了卡桑德拉 http cassandra apache org lately Twitter Digg Facebook
  • Apache Cassandra 中的复合索引

    我正在尝试设置一个 cassandra 列族 其中一些列上有二级索引 在读回数据时我需要进行过滤 在我最初的测试中 当我一起使用多个索引时 速度会变慢 这是我当前的配置方式 通过 cassandra cli update column fa

随机推荐