Подтвердить что ты не робот

Как переименовать таблицу в Cassandra CQL3

Я пытаюсь переименовать таблицу, созданную через CQLSH. Например. переименуйте таблицу "AAA" на "BBB". Невозможно найти команду для этого. Любые идеи?

Использование [cqlsh 3.1.6 | Cassandra 1.2.8 | CQL spec 3.0.0 | Протокол Thrift 19.36.0]

4b9b3361

Ответ 1

Я не верю, что вы можете переименовать таблицы или пространства ключей, там нет операции CQL3, и ничто в старых интерфейсах Thirft, если я правильно помню.

Одна из причин, по которой вы не можете, состоит в том, что для Кассандры было бы чрезвычайно сложно сделать это из-за ее распределенного характера, это изменение не может быть сделано атомарно, поэтому кластер будет находиться в противоречивом состоянии и, скорее всего, обновления будут потеряны. Он похож на создание и удаление таблиц, но в тех случаях он ожидал, что обновления будут потеряны, если они будут выпущены до создания таблицы или после ее удаления.

Единственный способ, который я знаю делать, что вы просите, - создать новую таблицу и перенести все данные из старого в новое, а затем отбросить старую таблицу. Возможно, есть способ сделать это, не перемещая данные, но, вероятно, вам потребуется остановить кластер и изменить имя всех каталогов и файлов, принадлежащих этой таблице, а также изменить метаданные в таблице system.schema_columnfamilies (но Я не уверен, что вы даже можете это сделать).