在 Cassandra 中创建 table。订购方式

Create table in Cassandra. Order by

我正在创建一个包含以下列的 table:

table 应该按标记排序。 它应该在 Cassandra 中完成,我必须执行以下两个查询:

select Student_ID, Course_Name from table where mark='A'

select Student_ID, max(Price_Paid) from table group by student_id

我尝试按如下方式定义 table 但它不适用于第二个查询:

CREATE TABLE table_students(
  Course Name text,
  Price Paid int, 
  nombre_profesor text, 
  id_estudiante int, 
  Mark text, 
primary key(Mark, Price Paid, Course Name, Student_ID));

第一个查询有效,但是当我尝试 运行 第二个查询时,一条消息表明支付的价格不应在 Student_ID 出现之前。如果我在两者之间切换顺序,table 排序不正确。

非常感谢您的支持

不要试图用一个 table 来完成它 - Cassandra 的数据建模规则说 - 一个查询,一个 table。所以如果你想按 student_id 聚合,你需要将它作为分区键。用主键创建一个 table 像这样 (student_id, course_name).

我建议阅读 this free book(Cassandra。权威指南,第 3 版)的第一章

P.S。此外,将 Mark 作为分区键不是很好 - 它的可能值太少,因此大分区的数量非常有限。相反,您可以向其中添加一些内容,例如年份或类似...