如何在Cassandra CQL3中重命名表

Vla*_*roz 21 cassandra cql3

我正在尝试重命名通过CQLSH创建的表.例如,将表"AAA"重命名为"BBB".找不到任何命令.有任何想法吗?

使用[cqlsh 3.1.6 | Cassandra 1.2.8 | CQL规范3.0.0 | 节俭协议19.36.0]

The*_*heo 28

我不相信你可以重命名表或键空间,没有CQL3操作来做这件事,如果我没记错的话,旧的Thirft接口也没有.

你不能这样做的一个原因是,由于Cassandra的分布式特性,这将是一件非常困难的事情,这种改变不能原子地进行,因此集群将处于不一致状态,并且很可能更新将是丢失.它类似于创建和删除表,但在这些情况下,如果在创建表之前或删除表之后发布更新,则预计会丢失更新.

我知道做你要求的唯一方法是创建新表并将所有数据从旧表移动到新表,然后删除旧表.可能有一种方法可以在不移动数据的情况下执行此操作,但可能需要您停止群集并更改属于该表的所有目录和文件的名称,并且还更改system.schema_columnfamilies表中的元数据(但我是不确定你甚至可以做到这一点).