Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 从CQL获取x秒数的所有数据?_Database_Cassandra_Timestamp_Cql - Fatal编程技术网

Database 从CQL获取x秒数的所有数据?

Database 从CQL获取x秒数的所有数据?,database,cassandra,timestamp,cql,Database,Cassandra,Timestamp,Cql,以下是我的CQL表- CREATE TABLE test1 ( id text, record_name text, record_value blob, PRIMARY KEY (id, record_name) ) 此处id列将包含如下数据- timestamp.count 1386882930000.1 1386882930000.1 | event_name | hello-world 这里的时间戳以毫秒为单位,但四舍五入到最接近的秒。例如,id列中的数据如下-

以下是我的CQL表-

CREATE TABLE test1 (
  id text,
  record_name text,
  record_value blob,
  PRIMARY KEY (id, record_name)
)
此处id列将包含如下数据-

timestamp.count
1386882930000.1
1386882930000.1 | event_name | hello-world
这里的时间戳以毫秒为单位,但四舍五入到最接近的秒。例如,
id列
中的数据如下-

timestamp.count
1386882930000.1
1386882930000.1 | event_name | hello-world
上表中的一行是这样的-

timestamp.count
1386882930000.1
1386882930000.1 | event_name | hello-world
现在我的问题是——

是否可以使用id列获取过去5秒、10秒或30秒的所有数据

我运行Cassandra 1.2.9不是为了ID列(假设您使用的是随机分区器(您应该这样做)。您可以按时间进行查询,但需要修改数据模型以支持它

CREATE TABLE test1 (
  source text,
  event_time timestamp,
  record_name text,
  record_value blob,
  PRIMARY KEY (id, event_time, record_name))
请注意,具有相同源的所有内容都将位于同一行(因此您应该有多个源),该行中的所有内容都将按事件\时间排序,然后记录\名称。我还使用了时间戳类型,这样我就不会在词法排序方面遇到麻烦,但如果您有一个与词法排序兼容的日期/时间格式,您可能就可以了


在Cassandra中,有一些很好的方法可以对数据进行时间划分和查询。不过,您需要稍微充实一下我们的模型信息,以了解什么是合适的。什么是“id”?它相对于其余数据代表什么?