【发布时间】:2011-02-02 22:10:31
【问题描述】:
我正在将现有的基于 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 天内未更新的实体)?
【问题讨论】:
标签: database-design data-modeling nosql cassandra