是否无法在Cassandra 3.11上删除列?
我们最近从Cassandra 3.7迁移到3.11,在检查兼容性时,我们发现如果表具有物化视图,Alter Table table_name drop column_name不起作用(即使该列不是任何Materialized视图的一部分)。
这似乎有点奇怪,因为我们的DataModel甚至没有改变一个位,而且它可能在3.7上。
SO上的某些其他线程建议首先删除物化视图,然后删除列,最后重新创建物化视图。
即使在大多数版本为3.7的版本的Cassandra发行说明中似乎没有关于此的信息。
知道这是否是Cassandra的错误?
答案 0 :(得分:3)
不再可能从具有物化视图的表中删除列。
这是在3.11.1 release notes中:“Cassandra将不再允许在具有物化视图的表上删除列。”
答案 1 :(得分:2)
将标志-Dcassandra.force_3_0_protocol_version = true添加到cassandra-env.sh。在所有节点上升级cassandra。然后,删除所有节点上的标志并执行滚动重新启动。通过这种方式,drop将起作用。