Cassandra:将类型从UUID更改为TIMEUUID

时间:2014-02-03 17:52:56

标签: cassandra cql timeuuid

我正在尝试将列的类型从UUID更改为TIMEUUID,但我无法这样做。

ALTER TABLE Person ALTER KEY TYPE timeuuid;

错误:

  

错误请求:无法将类型从uuid类型更改为类型timeuuid:类型不兼容。

如何在不丢失列族数据的情况下实现这一目标?

1 个答案:

答案 0 :(得分:2)

不允许。这是因为TimeUUID具有与常规UUID不同的排序模式,因此Cassandra不允许这样做。如果您不关心按时间排序的列,则可以在应用程序中生成和使用TimeUUID,而无需更改Cassandra中的列类型,但如果与现有列混合,则排序可能会出现故障。如果您绝对需要这样做,那么您唯一的选择就是迁移现有数据并将其列更改为UUID到新的列族。