连续查询是InfluxDB的一种查询类型。它会按照用户指定的查询规则,自动地、周期地查询实时数据并执行指定运算,然后将查询结果保存在一张指定的表中。
通过创建连续查询,用户可以指定InfluxDB执行连续查询的时间间隔、单次查询的时间范围以及查询规则。InfluxDB会根据用户指定的规则,定期的将过去一段时间内的原始时序数据以用户所期望的方式保存至新的结果表中,从而降低存储数据的时间精度,大大减少新表的数据量。同时,将查询结果保存在指定的数据表中,也便于用户直接查询所关心的内容,从而降低查询的运算复杂度,提升查询效率。
注意:InfluxDB在执行连续查询语句时,会根据time(interval) 的值自动生成查询时间范围。因此,用户在创建连续查询语句时,不需要在WHERE子句的查询条件中指定时间范围,且在WHERE条件中指定的时间范围都会被忽略掉
。
例:创建一条连续查询,按照指定时间间隔和标签对指定数据进行采样。create continuous query my_first_basic_cq on cq_test_db
begin
select max(cpu_usage) into basic_cq_result from cpu_usage_detail group by time(1h) ,ip
end
解释:每小时定期去查cpu_usage_detail表,按服务器ip聚合,统计过去1小时内每个IP的最大CPU利用率cpu_usage,并将结果保存在表basic_cq_result中。
group by time()指定的时间既决定了连续查询每次执行的时间间隔,也决定了连续查询的查询时间范围。基于本地服务器的时间,在预设的时间节点开始执行这些连续查询。influxDB会在每个小时开始的时候执行连续查询语句,如11:00,12:00,13:00 infulxDB首先通过now()函数获取当前时间,再用当前时间减去group by time()指定的时间间隔。这两个时间点之间的左闭合开区间就是连续查询语句查询时间范围。例如,时间长度是1小时,执行时间点是12:00,那么所查时间范围就是11:00~11:59.9999999。
高级连续查询语法:
用户通过RESAMPLE子句分别指定更具体的时间间隔和时间范围。
show continuous queries
drop continuous query <cq_name> on <database>
-修改已存在的连续查询语句
不支持,需先删除再创建扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有