【发布时间】:2014-09-14 02:40:36
【问题描述】:
我有以下型号:
CREATE TABLE IF NOT EXISTS log (
date varchar,
timeid timeuuid,
message varchar,
ip varchar,
time timestamp,
user bigint,
file varchar,
line int,
func varchar,
level int,
PRIMARY KEY (date, timeid, time)
) WITH CLUSTERING order by (timeid DESC);
如何获取某一天的所有日志,其中记录在给定的 timeid 和时间值之间?
目前的问题是,如果我使用 timeid>something,我不能使用 time>something,因为 cassandra 不允许对集群键进行多重过滤(非 EQ)。
我尝试了类似的东西
SELECT * FROM log
WHERE date='2014-09-14'
AND (timeid, time) <= (1245a230-3baa-11e4-8ca7-4bdg1fe06d46, '2014-09-14 03:57:16+0200')
AND (timeid, time) >= (cb66eef0-3ba9-11e4-8ca7-4bd6sfe06d46, '2015-09-14 02:57:14+0200');
但在这种情况下,cassandra 没有限制时间,所以我仍然会在 2015-09-14 02:57:14+0200 之前获得值,所以它只是在寻找 timeid 值。
有人知道怎么解决吗?
【问题讨论】:
标签: cassandra cql cql3 cassandra-2.0