要满足对客户最近 100 个事件的查询,您需要对上述模型进行两项调整:
将您的主键定义调整为仅在您的 CustomerId 和您的日期存储桶 (Date) 上进行分区。然后,您需要在DataTime 上进行集群。为确保传感器的唯一性,您可能还需要在末尾添加SensorId。
在datatime 上添加排序方向为DESC 的CLUSTERING ORDER。这将按datatime 将您的数据聚集在磁盘上,按最近的时间排序。
基本上,我是这样创建你的表的:
CREATE TABLE sensordata2 (
customerid uuid,
datebucket text,
datatime timeuuid,
sensorid text,
sensordata1 text,
sensordata2 text,
PRIMARY KEY ((customerid, datebucket), datatime, sensorid)
) WITH CLUSTERING ORDER BY (datatime DESC, sensorid ASC);
插入一些测试行后,我现在可以像这样查询WHERE customerid 3221b1d7-13b4-40d4-b41c-8d885c63494f 的最后 10 个传感器读数:
aploetz@cqlsh:stackoverflow2> SELECT customerid, datebucket, sensorid, dateof(datatime), datatime, sensordata1, sensordata2
FROM sensordata2 WHERE customerid=3221b1d7-13b4-40d4-b41c-8d885c63494f
AND datebucket='20150515' LIMIT 10;
customerid | datebucket | sensorid | dateof(datatime) | datatime | sensordata1 | sensordata2
--------------------------------------+------------+----------+--------------------------+--------------------------------------+-------------+-------------
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | A1 | 2015-05-15 10:34:34-0500 | e3a15c20-fb17-11e4-93da-21b264d4c94d | 47 | 24
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | A1 | 2015-05-15 10:34:34-0500 | e39ffc90-fb17-11e4-93da-21b264d4c94d | 46 | 23
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | A1 | 2015-05-15 10:34:34-0500 | e39e4ee0-fb17-11e4-93da-21b264d4c94d | 45 | 22
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | B1 | 2015-05-15 10:34:22-0500 | dc64a340-fb17-11e4-93da-21b264d4c94d | 47 | 24
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | B1 | 2015-05-15 10:34:22-0500 | dc60aba0-fb17-11e4-93da-21b264d4c94d | 46 | 23
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | B1 | 2015-05-15 10:34:22-0500 | dc5d0220-fb17-11e4-93da-21b264d4c94d | 45 | 22
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | A1 | 2015-05-15 10:32:16-0500 | 90e27fa0-fb17-11e4-93da-21b264d4c94d | 47 | 24
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | A1 | 2015-05-15 10:32:16-0500 | 90e0aae0-fb17-11e4-93da-21b264d4c94d | 46 | 23
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | A1 | 2015-05-15 10:32:16-0500 | 90de8800-fb17-11e4-93da-21b264d4c94d | 45 | 22
3221b1d7-13b4-40d4-b41c-8d885c63494f | 20150515 | A1 | 2015-05-15 10:25:24-0500 | 9b5d1ae0-fb16-11e4-93da-21b264d4c94d | 47 | 24
(10 rows)