2016-05-23 111 views
0

是否有數據存儲在Cassandra的數據庫,如果我將要搜索在這2個方面的數據的最佳方式:卡桑德拉事件存儲

1)最後20「錯誤」 event_types爲user_ID的「123」 2)所有的「登錄」 event_types過去一天

將這項工作: CREATE TABLE events ( user_id text, event_type text, data text, timestamp timestamp, PRIMARY KEY (event_type, timestamp, userid));

回答

2

您將需要創建兩個表本(至少在2.x版)。

從版本3.5開始,您可以使用SASI

1)最後20 「錯誤」 的user_ID的event_types 「123」

CREATE TABLE events ( user_id text, event_type text, data text, timestamp timestamp DESC, PRIMARY KEY ((userid,event_type), timestamp) ) WITH CLUSTERING ORDER BY (timestamp DESC);

現在,你可以通過下面的查詢得到的數據。

select * from events where user_id = '123' and event_type = 'error' limit 20

2)在過去的一天全部 「登陸」 event_types

CREATE TABLE events_by_type ( user_id text, event_type text, data text, timestamp timestamp DESC, PRIMARY KEY (event_type, timestamp) ) WITH CLUSTERING ORDER BY (timestamp DESC);

現在,你可以通過下面的查詢得到的數據。

select * from events where event_type = 'login' and timestamp > ddmmyyyy