Cassandra CQL: Как вставить только записи, которые не старше 3 лет? - PullRequest
0 голосов
/ 07 ноября 2019

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

CREATE TABLE events (
   id int,
   eventdate timestamp,
   PRIMARY KEY (id)
);

Я пытаюсь сделать условную вставку, которая проверит, если eventdate не старше 3 лет, и вставит данные, если условие

В SQL что-то похожее может быть достигнуто с помощью DATEADD

Как справиться с этим в Кассандре?

1 Ответ

1 голос
/ 07 ноября 2019

select * from events и выполнить итерацию (разбивку по страницам) набора результатов. Выпустить вкладыш для всего старше 3 лет. Быстрый скрипт на python и предоставление ему одного или двух дней для запуска сделают это за меньшее время, чем более сложные вещи. Особенно, если это одноразовая вещь. Если вам нужно делать это регулярно, я бы порекомендовал написать для этого искорку. Вы можете добиться большей эффективности, если не хотите использовать spark и хотите запускать его локально, разделив диапазоны токенов в операторе SELECT на границы кольца.

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

...