【发布时间】:2014-02-11 12:58:06
【问题描述】:
我正在使用 nodejs 和 Cassandra(helenus 模块)开发 API,并且我有一个类似于以下的 cassandra 模型:
CREATE TABLE IF NOT EXISTS events (
hour TIMESTAMP,
type int,
id timeuuid,
created_at TIMESTAMP,
invoice int,
data text,
PRIMARY KEY((hour, type), created_at)
)WITH CLUSTERING ORDER BY (created_at DESC);
现在,我有一个资源可以搜索特定发票编号的所有事件类型,因此当我执行如下查询时,它会返回符合我的条件的行。
select *
from events
WHERE hour = '2014-01-20 21:00:00'
AND type IN (0,1,2)
AND invoice = 123456789
ORDER BY created_at DESC LIMIT 15;
但是,当我想从与该特定发票编号相关的时间开始获取所有行时,我遇到了麻烦,因为我的“小时”字段限制了我很多。
而且 Cassandra 有一个限制,您只能在条件语句中使用 EQ 和 IN 运算符作为分区键(小时、类型)。
什么是满足我需求的最佳模型?
谢谢。
【问题讨论】:
标签: model cassandra time-series cql3