【发布时间】:2016-03-29 02:40:34
【问题描述】:
我们使用 Cassandra 作为我们车队管理解决方案的历史数据。我们在 Cassandra 中有一张表,其中存储了车辆的旅程细节。表结构如下所示
CREATE TABLE journeydetails(
bucketid text,
vehicleid text,
starttime timestamp,
stoptime timestamp,
travelduration bigint,
PRIMARY KEY (bucketid,vehicleid,starttime,travelduration)
);
地点:
- bucketid :- 分区键,是月和年的组合
- vehicleid : - 车辆的唯一 ID
- starttime :- 旅程的开始时间
- endtime :- 旅程的结束时间
- travelduration:- 以毫秒为单位的旅行持续时间
我们要运行以下查询 - 获取车辆的所有行程 - 1234567 在 2015-12-1 和 2015-12-3 之间,其行程持续时间大于 30 分钟 p>
当我运行这个查询时:
select * from journeydetails where bucketid in('2015-12') and vehicleid in('1234567')
and starttime > '2015-12-1 00:00:00' and starttime < '2015-12-3 23:59:59'
and travelduration > 1800000;
我得到这个结果:
InvalidRequest: code=2200 [Invalid query] message="Clustering column "travelduration"
cannot be restricted (preceding column "starttime" is restricted by a non-EQ relation)
有人对如何解决这个问题有建议吗?
【问题讨论】: