我正在将现有的基于 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 数据模型,它允许我存储给定的信息并有效地查询实体表中需要更新的实体(即:过去 7 天内未更新的实体)?