Я перенесу существующее приложение на базе MySQL в Cassandra. До сих пор найти эквивалентную модель данных Cassandra было довольно легко, но я наткнулся на следующую проблему, для которой я был бы признателен за некоторые данные:
Рассмотрим таблицу MySQL, содержащую миллионы объектов:
CREATE TABLE entities (
id INT AUTO_INCREMENT NOT NULL,
entity_information VARCHAR(...),
entity_last_updated DATETIME,
PRIMARY KEY (id),
KEY (entity_last_updated)
);
Каждые пять минут к таблице запрашиваются сущности, которые необходимо обновить:
SELECT id FROM entities
WHERE entity_last_updated IS NULL
OR entity_last_updated < DATE_ADD(NOW(), INTERVAL -7*24 HOUR)
ORDER BY entity_last_updated ASC;
Объекты, возвращаемые этими запросами, затем обновляются с использованием следующего запроса:
UPDATE entities
SET entity_information = ?,
entity_last_updated = NOW()
WHERE id = ?;
Какой должна быть соответствующая модель данных Cassandra, которая позволила бы мне хранить заданную информацию и эффективно запрашивать в таблице сущностей сущности, которые необходимо обновить (то есть сущности, которые не обновлялись в последние семь дней)?