如何解决Apache Cassandra 订购 bv 集群密钥?
我有一张这样设置的表:
...
PRIMARY KEY (id,"requestId","createdAt")
) WITH CLUSTERING ORDER BY ("requestId" ASC,"createdAt" DESC)
所以当我像这样运行 CQL 时:
SELECT * from "Table" WHERE "requestId"='someId'
我应该得到由 createdAt DESC 排序的结果吗?这正是我所期望的,但我是 Cassandra 的新手,不确定它是如何工作的。
我想要实现的是检索属于某个 requestId 的所有记录,按创建日期 DESC 排序。
我该怎么做?
解决方法
在 Cassandra 中,数据仅在分区内排序,而不是全局排序。如果您执行SELECT * from "Table" WHERE id = .... AND "requestId"='someId'
,那么您将按createdAt
降序获取数据
您的原始查询无法立即使用,因为您没有提供分区键。如果你输入“ALLOW FILTERING”(坏主意),那么你会得到数据,但在每个分区内分别按 createdAt
排序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。