集群键列必须与 CLUSTERING ORDER BY 指令中的列完全匹配

Clustering key columns must exactly match columns in CLUSTERING ORDER BY directive

我正在尝试使用创建查询创建簇列

CREATE TABLE videos_by_tag (
       tag text,
       video_id uuid,
       added_date timestamp,
       title text,
       PRIMARY KEY ((tag), added_date, video_id)
) WITH CLUSTERING ORDER BY(added_date DESC);

显示以下错误。我在创建 table 时遗漏了什么吗?

InvalidRequest:来自服务器的错误:code=2200 [无效查询] message="Clustering key columns must exactly match columns in CLUSTERING ORDER BY directive"

仅当我包括主键中提到的所有聚类列时它才有效(在本例中为 added_date、video_id)。是否必须按聚类顺序包括主键中的所有列?

CREATE TABLE videos_by_tag (
       tag text,
       video_id uuid,
       added_date timestamp,
       title text,
       PRIMARY KEY ((tag), added_date, video_id)
) WITH CLUSTERING ORDER BY(added_date DESC,video_id ASC);

我在 mac os

上使用以下版本的 cassandra

[cqlsh 5.0.1 |卡桑德拉 4.0.0.680 | CQL 规范 3.4.5

仅当我包括主键中提到的所有聚类列时它才有效(在本例中为 added_date、video_id)。是否必须按聚类顺序包括主键中的所有列?

这个问题似乎也发布在 https://community.datastax.com/questions/4118/ 上,我在这里重新发布我的答案。

是的,在 DataStax Enterprise 6.8.0 中,必须在 CLUSTERING ORDER BY 指令中指定所有集群列。 CREATE TABLE 的逻辑在 Apache Cassandra 4.0-alpha1 (CASSANDRA-13426) but has been reverted back in C* 4.0-alpha4 (CASSANDRA-15271) 中发生了变化。以前的 [accepted] 行为将包含在 DSE 6.8 的未来版本中。干杯!