我正在使用Cassandra 1.2.5。在使用cassandra-cli在Cassandra中创建列族之后,是否可以使用cassandra-cli或CQL修改列族的主键?
具体来说,我目前有以下表格(来自CQL):
CREATE TABLE "table1" (
key blob,
column1 blob,
value blob,
PRIMARY KEY (key, column1)
);
我希望表格如下,而不必删除并重新创建表格:
CREATE TABLE "table1" (
key blob,
column1 blob,
value blob,
PRIMARY KEY (key)
);
这可以通过cassandra-cli或CQL实现吗?
答案 0 :(得分:16)
主键直接决定cassandra如何以及在何处存储表(列族)中包含的数据。主键由分区键和群集键(可选)组成。
分区键确定哪个节点存储数据。它负责跨节点的数据分发。其他列确定每个分区的群集(请参阅compound key documentation)。
因此,更改主键始终需要迁移所有数据。我不认为cqlsh或cassandra-cli都有这样的命令(截至2015年)..