详解Influxdb创建Continuous Query

Continuous Query

基本语法格式:

CREATE CONTINUOUS QUERY <cq_name> ON <database_name> 
BEGIN 
<cq_query> 
END 

cq_query格式:

SELECT <function[s]> INTO <destination_measurement> 
FROM <measurement> [WHERE <stuff>] 
GROUP BY time(<interval>,<offset>)[,<tag_key[s]>] 

CQ操作的是实时数据,使用本地服务器的时间戳。其中:
WHERE条件:设置非时间条件
GROUP BY time(interval,offset):单次查询的时间范围为now()-interval到now()(整点到整点)。若指定了offset参数,则从整点向后偏移offset时长。

  • 列表内容

设置retention policy不为默认autogen的cq_query格式

SELECT <function[s]> INTO <database>.<retention policy>.<destination_measurement> 
FROM <measurement> [WHERE <stuff>] 
GROUP BY time(<interval>,<offset>)[,<tag_key[s]>]

destination_measurement之前要加上database.retention_policy.

  • 高级语法
CREATE CONTINUOUS QUERY <cq_name> ON <database_name>
RESAMPLE EVERY <interval> FOR <interval> 
BEGIN 
<cq_query> 
END 

CQ的执行时间和查询时间范围则与RESAMPLE里面的两个interval有关。以EVERY interval的时间间隔执行,执行时查询的时间范围则是FOR interval来确定。
1. 只配置执行时间
执行时间根据every interval,查询时间范围根据group by time()。
当time>interval,例如interval=30m,time(1h),at 8:30时间范围为8:00-9:00;at 9:00时间范围为8:00-9:00,且后一条查询结果覆盖前一条。
2. 只配置查询时间范围
执行时间根据group by time(),查询时间范围根据for interval。
3. 同时配置
example:

CREATE CONTINUOUS QUERY "cq_advanced_every_for" ON "transportation" 
RESAMPLE EVERY 1h FOR 90m 
BEGIN 
SELECT mean("passengers") INTO "average_passengers" FROM "bus_data" GROUP BY time(30m) 
END 

执行间隔为1小时,而查询范围90分钟,最后分组是30分钟,每次插入了三条记录

At 8:00 cq_advanced_every_for 查询时间范围 time >= '6:30' AND time < '8:00'.
name: average_passengers 
------------------------ 
time                 mean 
2016-08-28T06:30:00Z 3 
2016-08-28T07:00:00Z 6.5 
2016-08-28T07:30:00Z 7.5 
At 9:00 cq_advanced_every_for 查询时间范围 time >= '7:30' AND time < '9:00'.
name: average_passengers 
------------------------ 
time                 mean 
2016-08-28T07:30:00Z 7.5 
2016-08-28T08:00:00Z 11.5 
2016-08-28T08:30:00Z 16 

最终结果:

name: average_passengers 
------------------------ 
time                 mean 
2016-08-28T06:30:00Z 3 
2016-08-28T07:00:00Z 6.5 
2016-08-28T07:30:00Z 7.5 
2016-08-28T08:00:00Z 11.5 
2016-08-28T08:30:00Z 16 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值