Phantom-Cassandra Вставка / обновление поведения
Я пытаюсь связать две таблицы с одинаковыми данными, как здесь: http://outworkers.com/blog/post/a-series-on-cassandra-part-1-getting-rid-of-the-sql-mentality
Моя вторая таблица содержит данные, к которым я хочу запросить, например:
foo (
id text,
time timestamp,
a int,
b int,
c int,
d int,
PRIMARY KEY (time, id)
) WITH CLUSTERING ORDER BY (time DESC, id ASC)
Поэтому здесь я хочу сделать запрос по метке времени или идентификатору. Теперь a, b, c, d - это элементы, которые должны быть уникальными, то есть ПЕРВИЧНЫЙ КЛЮЧ (a, b, c, d). Для этого я создаю первую таблицу:
bar (
id text,
time timestamp,
a int,
b int,
c int,
d int,
PRIMARY KEY (a, b, c, d)
)
Дело в том, что во время вставки id и время могут измениться, но a, b, c, d останутся прежними. Теперь я надеялся сделать что-то в духе той последовательности, о которой говорилось в блоге. Проблема, с которой я сталкиваюсь, заключается в том, что если я пытаюсь вставить элемент с тем же (a, b, c, d)
bar успешно обновляет соответствующую строку, но foo создает новую запись. Как мне удалить старую запись в foo или обновить foo как bar???
1 ответ
Согласно документации Кассандры:
UPDATE не может обновить значения полей первичного ключа строки
И вот пример для фантомного запроса на удаление: https://github.com/outworkers/phantom/wiki/Querying