Cassandra:创建一个分区键

问题描述:

我在cassandra有一个表学生(id,marks,score)。我创建了id为主键的表。我需要按分数对表格进行排序,并且我还没有为分数创建分区键。如何创建分区键而不重新创建表?Cassandra:创建一个分区键

Cassandra不允许您更改主键,因为主键定义了数据如何物理存储在磁盘上。如果你真的想改变它,正如你已经提到过的,唯一的办法是用不同的主键创建一个新表并将所有数据迁移到新表中。

在您的新表中,您可能仍然需要ID作为您的分区键(假设您在查询时知道ID),并将分数作为聚类列。这将允许您搜索特定的ID,然后按照与该分区关联的分数进行排序。

Cassandra 3.0的Materialized Views功能允许您使用不同列作为分区键的新视图。该视图可以在不重新创建表格的情况下添加。

关于何时何时不使用它们有很好的讨论here