无法在Cassandra 3.11中删除列

时间:2018-05-17 07:23:34

标签: cassandra

是否无法在Cassandra 3.11上删除列?

我们最近从Cassandra 3.7迁移到3.11,在检查兼容性时,我们发现如果表具有物化视图,Alter Table table_name drop column_name不起作用(即使该列不是任何Materialized视图的一部分)。

这似乎有点奇怪,因为我们的DataModel甚至没有改变一个位,而且它可能在3.7上。

SO上的某些其他线程建议首先删除物化视图,然后删除列,最后重新创建物化视图。

即使在大多数版本为3.7的版本的Cassandra发行说明中似乎没有关于此的信息。

知道这是否是Cassandra的错误?

2 个答案:

答案 0 :(得分:3)

不再可能从具有物化视图的表中删除列。

这是在3.11.1 release notes中:“Cassandra将不再允许在具有物化视图的表上删除列。”

如果您想查看related code change, it is here

答案 1 :(得分:2)

将标志-Dcassandra.force_3_0_protocol_version = true添加到cassandra-env.sh。在所有节点上升级cassandra。然后,删除所有节点上的标志并执行滚动重新启动。通过这种方式,drop将起作用。