【发布时间】:2017-08-17 22:59:10
【问题描述】:
CREATE TABLE user_logins (
user_id bigint PRIMARY KEY,
login_time timestamp
)WITH CLUSTERING ORDER BY (login_time DESC);
有没有办法可以维护 Cassandra 中密钥的最后 3 个版本?如果我用这个主键添加更多行,它应该自动截断删除最旧的行以确保一次只维护 3 行?例如,每个用户只维护他们最近 3 个登录时间戳。
一种方法是我使用 list 之类的集合来存储时间戳,然后执行 read-before-write 以获取当前值、修改并保留它?有没有其他方法可以让我在没有时间概念的情况下拥有类似 TTL 的功能但保持最后 N 个版本?
【问题讨论】:
-
请注意,在您给定的示例中,未定义聚类列。正确的语法是:
CREATE TABLE user_logins ( user_id bigint, login_time timestamp, PRIMARY KEY((user_id), login_time) ) WITH CLUSTERING ORDER BY (login_time DESC);
标签: cassandra