下面是我的CQL表 -
CREATE TABLE test1 (
id text,
record_name text,
record_value blob,
PRIMARY KEY (id, record_name)
)
这里id列将包含这样的数据 -
timestamp.count
此处时间戳以毫秒为单位,但四舍五入到最接近的秒数。举个例子,id column
中的数据就像这样 -
1386882930000.1
上表中的一行将是这样的 -
1386882930000.1 | event_name | hello-world
现在我的问题是 -
是否可以使用id列获取最近5秒或10秒或30秒的所有数据?
我正在运行Cassandra 1.2.9
答案 0 :(得分:0)
不适用于ID列(假设您使用的是随机分区程序(您应该使用)。您可以按时间查询,但是您需要修改数据模型以支持它。
CREATE TABLE test1 (
source text,
event_time timestamp,
record_name text,
record_value blob,
PRIMARY KEY (id, event_time, record_name))
请注意,具有相同源的所有内容都将位于同一行中(因此您应该有多个源),并且该行中的所有内容都将按event_time排序,然后是record_name。我也使用了时间戳类型,这样我就不会遇到词法排序的问题,但是如果你有一个与词汇排序兼容的日期/时间格式,你可能会很好。