我们尝试使用cassandra cli
删除CF.DROP COLUMN FAMILY cfName
当我们从CLI列出CF时,它不在那里,当我试图通过hector获取现有的CF时
我仍然可以看到CF名称
KeyspaceDefinition keyspaceDefinition = newConnection().describeKeyspace(keyspaceName);
keyspaceDefinition.getCfDefs();
CF内的数据不存在,CF仍然列出,在通过hector列出CF后,如果我执行cassandra -cli列列系列,我可以再次看到我删除的CF
答案 0 :(得分:4)
我不得不在Cassandra 1.1上处理这个问题。基本上,我的列系列已经损坏,并且改变其模式的唯一方法是删除/恢复密钥空间(当时DataStax引导我完成)。
如果您与DataStax签订了支持合同,我强烈建议您在继续之前与他们联系。他们告诉你的第一件事是,这是Cassandra 1.1特定版本中的一个错误,你应该升级。我还没有对其进行测试,但根据它们,就地升级将允许您在新版本中修改架构。因此,您可以通过升级到1.2或2.0来解决此问题。
在我的情况下(生产,企业环境),现场升级不是一种选择。为了解决这个问题,我基本上不得不放弃我的整个键空间,重新创建它(以及我的列族),并从快照中恢复。我松散地跟着instructions found here:
cassandra-cli
重新创建密钥空间。