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

Другие вопросы по тегам