2017-03-07 59 views
0

有在卡桑德拉Cassandra如何在表中添加集群密钥?

create table test_moments(id Text, title Text, sort int, PRIMARY KEY(id)); 

如何在列“排序”添加聚集键的表。不会重新创建表

+0

的可能的复制[分区键,组合键和在卡桑德拉聚集键之间的差异?](http://stackoverflow.com/questions/24949676/difference-between-partition-key-composite-key-and-clustering-键合卡桑德拉) –

+0

Ⅰ号要添加一键排序到现有的表 – litehause

回答

0

的主要问题是在磁盘上的数据结构。直接集群密钥决定数据如何排序和序列化到磁盘(然后搜索),所以你所要求的是不可能的。

的唯一方法是将数据“迁移”到另一个表。根据您的数据,如果你有很多的记录,你可以在查询过程中遇到的一些超时错误,所以要准备好调整一些有用的技术迁移,如COPY命令或令牌功能。

看一看this SO问题也。

0

所有你需要做的就是把它添加作为主键的第二部分,使之复合键

create table test_moments(id Text, title Text, sort int, PRIMARY KEY(id, sort)); 
+0

不重新创建表 – litehause

+0

它不可能。集群关键是关于数据的排序,而这种排序是在写入而不是在读取时完成的。您需要重新创建表格 –