0
我有一個像卡桑德拉Count聚合在間隔
CREATE TABLE table (
id text,
time_stamp timestamp,
value text,
PRIMARY KEY (id, time_stamp)
) WITH CLUSTERING ORDER BY (time_stamp DESC)
我想要的是獲得任意時間單位的間隔計數的表。示例:
{ "start": "03-08-2016 00:00:00.000", "end": "03-08-2016 12:00:00.000",
"interval": 1, "unit":"HOURS"}
這將是輸入以12小時爲間隔返回計數列表,每1小時計數一次。我想要的結果就像[12,2,44,...,212]。
我知道我可以做多
select count(*) from table where time_stamp > '03-08-2016 00:00:00.000' and time_stamp < '03-08-2016 01:00:00.000' allow filtering;
select count(*) from table where time_stamp > '03-08-2016 01:00:00.000' and time_stamp < '03-08-2016 02:00:00.000' allow filtering;
但是,這將是多個查詢。有什麼辦法可以更快地做到這一點?
確實沒有什麼可以做,「更快」,當你在使用'允許過濾「。你可能應該在一天(如:20160308)而不是ID進行分區。那麼你根本不需要'ALLOW FILTERING'。 – Aaron
你認爲像kairosdb這樣的東西會更好用嗎?我需要的唯一聚合功能是count,但kairosdb能夠按照我需要的採樣間隔進行。 – user1738539
在這種情況下,KairosDB可能就是你想要的。 Cassandra無法在這裏完成你想要的任務,而且它也不能很好地處理你當前的數據模型。 – Aaron