Столбцы обновления Cassandra CQL

У меня есть таблица Cassandra:

CREATE TABLE test (
    c1 text primary key,
    c2 text
);

Столбец c2 имеет такие значения, как «a», «b», «c», ... Теперь я хочу изменить значение c2 на «a» для всех строк. (Допустим, у меня десять тысяч строк) Как лучше всего это сделать в Cassandra?

В SQL я могу просто сделать

UPDATE test SET c2 = 'b';

Но Кассандра не позволяет.


person user2122264    schedule 29.10.2013    source источник


Ответы (2)


В Cassandra нет CQL для этого. Вы можете сделать это, получив все свои ключи c1:

SELECT c1 from test;

затем напишите скрипт, который выполняет цикл и делает

UPDATE test SET c2 = 'b' WHERE c1 = <c1>;

для каждого возвращенного c1.

person Richard    schedule 29.10.2013

Cassandra не является базой данных SQL. Предлагаю прочитать обзор низкоуровневого API и архитектуры Cassandra. Это даст хорошее представление о том, что Cassandra может делать, чего она не может, в чем она хороша, а в чем не очень. Этот пример массового обновления требует независимых обновлений этого конкретного столбца в каждой строке вашей таблицы (семейство столбцов), и каждое из этих обновлений представляет собой отдельную операцию записи.

person Nikolai Grigoriev    schedule 29.10.2013