【问题标题】:Cassandra how to add clustering key in table?Cassandra如何在表中添加集群键?
【发布时间】:2017-07-27 19:39:15
【问题描述】:

cassandra中有一张桌子

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

如何在“排序”列中添加聚类键。不重新创建表

【问题讨论】:

标签: cassandra cql3


【解决方案1】:

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

唯一的方法是将数据“迁移”到另一个表。根据您的数据,如果您有很多记录,您可能会在查询期间遇到一些超时错误,因此请准备好使用一些有用的技术(例如 COPY 命令或 TOKEN 函数)来调整您的迁移。

也请查看this SO 问题。

【讨论】:

    【解决方案2】:

    您只需将其添加为 PRIMARY KEY 的第二部分,使其成为复合键

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

    【讨论】:

    • 不重新创建表
    • 不可能。聚类键与数据的排序有关,这种排序是在写入时完成的,而不是在读取时完成的。您需要重新创建表
    猜你喜欢
    • 2013-09-09
    • 2016-08-16
    • 2018-12-13
    • 2020-08-17
    • 2015-08-09
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2014-11-15
    相关资源
    最近更新 更多