当前位置: 首页 > 知识库问答 >
问题:

使用timeuuid CQL的聚类顺序

公冶谦
2023-03-14

我的用法

create table demo(oid int,cid int,ts timeuuid,PRIMARY KEY (oid,cid,ts)) WITH CLUSTERING ORDER BY (ts DESC);
I want the result for all the below queries to be in DESC order of timestamp

select * from demo where oid = 100;
select * from demo where oid = 100 and cid = 10;
select * from demo where oid = 100 and cid = 100 and ts > minTimeuuid('something');
cqlsh:v> create table demo(oid int,cid int,ts timeuuid,PRIMARY KEY (oid,cid,ts))     WITH CLUSTERING ORDER BY (ts desc);
Bad Request: Missing CLUSTERING ORDER for column cid

共有1个答案

慕容成文
2023-03-14
CREATE TABLE example ( a int, b int, c int, d int, PRIMARY KEY (a,b,c)) WITH CLUSTERING ORDER BY (b DESC , c ASC ) ;

是对多列进行排序的正确语法。

对于您的特定应用程序,您实际上试图从明显不同类型的查询中获得结果。在Cassandra中,最好将每个表设置为对特定查询的响应。

例如(对您的应用程序了解不多)

select * from demo where oid = 100 and cid = 100 and ts > minTimeuuid('something');
select * from demo where oid = 100 and cid = 10;
create table demo_oct(oid int,cid int,ts timeuuid, body, other ...., PRIMARY KEY ((oid,cid),ts)) WITH CLUSTERING ORDER BY (ts DESC);
create table demo_ot(oid int,cid int,ts timeuuid, body, other ...., PRIMARY KEY (oid,ts)) WITH CLUSTERING ORDER BY (ts DESC);

在应用程序端,您将同时插入这两个表。

有关Datamodeling的更多信息

 类似资料:
  • 所以我有一张表,它看起来像这样: 我们依赖该表根据进行分页来正确排序。 问题是:当从cassandra返回结果时,看起来它们是根据ASCII值而不是逻辑的A-Z排序进行排序的。-对于观看它的人来说,这在程序上是有意义的,但在逻辑上是不合理的。 是否有一个选项来改变当前聚类顺序的方法? -或者另一种逻辑排序的方法?

  • 本文向大家介绍C++聚合关系类的构造函数的调用顺序详解,包括了C++聚合关系类的构造函数的调用顺序详解的使用技巧和注意事项,需要的朋友参考一下 如图,表示一个聚合关系 下面就用简单的代码来实现 由此可以看出,对象的构造函数调用的顺序就好像我们造车子一样,先打造好引擎和其他部件才能拼装好汽车,析构函数的调用就和拆开汽车一样,先扒开最外面的,然后再扒里面的。 以上这篇C++聚合关系类的构造函数的调用顺

  • 假设我在ES中有以下文档,每个文档都有3个字段:f1、f2和分数。我想找到所有文档,按f1、f2分组,按组最大分数排序,在SQL我可以简单地这样做: elasticsearch中的等价物是什么?嵌套术语聚合不会给出正确的顺序,因为返回的f2术语桶都嵌套在同一个f1术语桶中。

  • 我有一个描述容器的文档结构,它的一些字段是: 我想运行一个搜索聚合,该聚合在两个权重字段上有两个级别的术语聚合,但按权重字段的降序排列,如下所示: 样本文件: 预期输出(未完成): 但是,我不能按嵌套聚合排序。(错误:术语桶只能在子聚合器路径上排序,该子聚合器路径由路径中的零个或多个单桶聚合和最终的单桶或指标聚合构建...) 例如,对于上述示例输出,如果我在术语聚合上引入大小(如果我的数据很大,我

  • 卡桑德拉会读这本书吗?按顺序聚类键? 总之,Cassandra是否可以被认为是数据结构?

  • 对于层次聚类法,我们不需要预先指定分类的数量,这个算方法会将每条数据都当作是一个分类,每次迭代的时候合并距离最近的两个分类,直到剩下一个分类为止。 因此聚类的结果是:顶层有一个大分类,这个分类下有两个子分类,每个子分类下又有两个子分类,依此类推,层次聚类也因此得命。 在合并的时候我们会计算两个分类之间的距离,可以采用不同的方法。如下图中的A、B、C三个分类,我们应该将哪两个分类合并起来呢? 单链聚