要進行範圍查詢,您需要將此列作爲聚類列。
在這種情況下,它將是有效的,導致聚類列存儲排序。如果你想搜索數據,你需要指定分區鍵。
因此,作爲一個例子,在這裏我使用DEVICE_ID作爲分區鍵:
CREATE TABLE IF NOT EXISTS mykeyspace.device_data (
DEVICE_ID text,
HOURLYTIME TIMESTAMP,
FULLTIME TIMESTAMP,
DATA TEXT,
PRIMARY KEY (DEVICE_ID, HOURLYTIME, FULLTIME)
);
INSERT INTO mykeyspace.device_data (device_id, hourlytime, fulltime, data)
values('Spam machine', '2014-12-12 00:01:00','2014-12-12 00:00:01','Hello World1');
INSERT INTO mykeyspace.device_data (device_id, hourlytime, fulltime, data)
values('Spam machine', '2014-12-12 00:02:00','2014-12-12 00:00:02','Hello World2');
INSERT INTO mykeyspace.device_data (device_id, hourlytime, fulltime, data)
values('Spam machine', '2014-12-12 00:03:00','2014-12-12 00:00:03','Hello World3');
-- Effective range query
SELECT * FROM mykeyspace.device_data
WHERE device_id = 'Spam machine'
AND hourlytime > '2014-12-12 00:00:00'
AND hourlytime < '2014-12-12 00:02:00';
或者另一示例,其中,I白天分區數據(這將導致在集羣很好地擴展的數據),並執行範圍查詢:
CREATE TABLE IF NOT EXISTS mykeyspace.day_data (
DAYTIME timestamp,
HOURLYTIME TIMESTAMP,
FULLTIME TIMESTAMP,
DATA TEXT,
PRIMARY KEY (DAYTIME, HOURLYTIME, FULLTIME)
);
INSERT INTO mykeyspace.day_data (DAYTIME, hourlytime, fulltime, data)
values('2014-12-12', '2014-12-12 00:01:00','2014-12-12 00:00:01','Hello World1');
INSERT INTO mykeyspace.day_data (DAYTIME, hourlytime, fulltime, data)
values('2014-12-12', '2014-12-12 00:02:00','2014-12-12 00:00:02','Hello World2');
INSERT INTO mykeyspace.day_data (DAYTIME, hourlytime, fulltime, data)
values('2014-12-12', '2014-12-12 00:03:00','2014-12-12 00:00:03','Hello World3');
SELECT * FROM mykeyspace.day_data
WHERE daytime = '2014-12-12'
AND hourlytime > '2014-12-12 00:00:00'
AND hourlytime < '2014-12-12 00:02:00';
有一個關於時間序列數據上PlanetCassandra
非常有用的文章,你可以嘗試> 2014-12-12 00:00:00&<2014-12-12 23:59:59 ... –