既存の 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)
);
更新が必要なエンティティについて、5 分ごとにテーブルがクエリされます。
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 = ?;
指定された情報を保存し、更新が必要なエンティティ (つまり、過去 7 日間更新されていないエンティティ) を効率的にエンティティ テーブルにクエリできるようにする、対応する Cassandra データ モデルは何でしょうか?