是否可以仅在特定时间范围内从 Cassandra select 获取数据?
Is it possible to select data from Cassandra only for specific timeframe?
假设我将数据存储在 Cassandra 中,其中一列具有时间戳格式,它也是一个键,通过它我可以 select 基于日期时间范围的数据。我的数据频率为 1 分钟,因此检索一整天的行将获得 1440 个数据点。但是对于某些应用程序,我只想在每个偶数小时每天检索 24 个点。
是否可以在 CQL 中进行查询,仅获取偶数小时或每隔一定时间(如 15 或 30 分钟)的数据点?
我的 cassandra 版本:
[cqlsh 5.0.1 | Cassandra 3.11.10 | CQL spec 3.4.4 | Native protocol v4]
编辑:我设计了 table 但如果需要我可以更改它。到目前为止,创建 table 的查询是:
CREATE TABLE sensors_test
(name text,
value double,
time timestamp,
PRIMARY KEY (name, time)
) WITH CLUSTERING ORDER BY (time DESC);
您的设计将达到目的,但会产生宽行。
CREATE TABLE sensors_test
( name text,
year int,
month int,
day int,
hour int,
value double,
time timestamp,
PRIMARY KEY ((name,year,month,day,hour), time)
) WITH CLUSTERING ORDER BY (time DESC);
这个table设计将解决宽行问题。您可以获取一天中任何时间的数据,也可以在时间列上使用范围查询。
假设我将数据存储在 Cassandra 中,其中一列具有时间戳格式,它也是一个键,通过它我可以 select 基于日期时间范围的数据。我的数据频率为 1 分钟,因此检索一整天的行将获得 1440 个数据点。但是对于某些应用程序,我只想在每个偶数小时每天检索 24 个点。
是否可以在 CQL 中进行查询,仅获取偶数小时或每隔一定时间(如 15 或 30 分钟)的数据点?
我的 cassandra 版本:
[cqlsh 5.0.1 | Cassandra 3.11.10 | CQL spec 3.4.4 | Native protocol v4]
编辑:我设计了 table 但如果需要我可以更改它。到目前为止,创建 table 的查询是:
CREATE TABLE sensors_test
(name text,
value double,
time timestamp,
PRIMARY KEY (name, time)
) WITH CLUSTERING ORDER BY (time DESC);
您的设计将达到目的,但会产生宽行。
CREATE TABLE sensors_test
( name text,
year int,
month int,
day int,
hour int,
value double,
time timestamp,
PRIMARY KEY ((name,year,month,day,hour), time)
) WITH CLUSTERING ORDER BY (time DESC);
这个table设计将解决宽行问题。您可以获取一天中任何时间的数据,也可以在时间列上使用范围查询。