【发布时间】:2020-01-08 21:42:10
【问题描述】:
我有一个包含以下内容的表格(删除了其他字段)
CREATE TABLE if NOT EXISTS request_audit (
user_id text,
request_body text,
lookup_timestamp TIMESTAMP
PRIMARY KEY ((user_id), lookup_timestamp)
) WITH CLUSTERING ORDER BY ( lookup_timestamp DESC);
我使用以下内容创建记录
INSERT INTO request_audit (user_id, lookup_timestamp, request_body) VALUES (?, ?, toTimestamp(now()))
我正在尝试检索过去 24 小时内的所有行,但我遇到了时间戳问题, 我试过了
SELECT * from request_audit WHERE user_id = '1234' AND lookup_timestamp > toTimestamp(now() - "1 day" )
以及尝试从查询中抽出一天时间的各种其他方式。
【问题讨论】:
-
为什么不在主键中添加日期(不带时间)?我认为在这种情况下使用不同的分区可能会很好,只是为了避免热点,以防一个用户获得很多行(即使您已经有一个反向时间序列)。然后,您使用两个查询(并行)管理过去 24 小时。