我正在尝试用C *模拟我的时间序列事件。 但是,由于我的使用情况,我不能确定模型是否最有效。
CREATE TABLE events_by_hour (
event_time timestamp,
date_hour text,
customer_id text,
PRIMARY KEY ((customer_id,date_hour),event_time)
); // I dont want to keep data older then 2 weeks m so every column will have a ttl of 2 weeks+delta
此外,由于以下用例,还会有另一个列系列来跟踪行键:
CREATE TABLE customer_rowKeys (
date_hour text,
customer_id text,
PRIMARY KEY (customer_id)
); // This column family will also have a ttl of 2 weeks
我的用例是我想要从时间t1到t2的事件,但一次只有100个事件。在接下来的电话中我会想要后续的100等等。我可以在列上使用Slice查询,并在后续调用中继续传递偏移量(类似于分页)。现在,我看到的问题是,因为每行包含一小时的数据,对于一些客户来说,行可能非常宽,而对于某些行则可能是瘦的。现在,如果t1到t2之间的时差是一周。我该怎么办?此外,每个客户每小时都没有数据,所以会有漏洞吗? 最糟糕的情况是假设每小时只有一个活动,我最终会拨打100个电话。
如何在Cassandra中最佳地处理上述用例?