关于influxdb:InfluxDB-Continuous-Query解析

Continuous Query(CQ)是外部周期运行的InfluxQL的查问,将查问后果写入指定的measurement,用它能够实现降采样downsampling。

联合CQ和RP(Retention Policy),能够将历史数据保留为低精度,最近的数据保留为高精度,以升高存储用量。

Continuous Query的语法结构:

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

其中的<cq_query>须要一个函数,一个INTO字句和一个GROUP BY time()字句,其语句构造:

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

举个简略的例子

将cpu.user数据进行5m均匀:

CREATE CONTINUOUS QUERY "cq_5" ON falcon 
BEGIN 
SELECT mean(value) INTO falcon.autogen."5_cpu.user" FROM falcon.autogen."cpu.user" GROUP BY time(5m), * 
END

其中的falcon.autogen.”5_cpu.user”,falcon示意database,autogen示意retention policy,5_cpu.user示意新的table。

//查问cq
> show continuous queries;
name: falcon
name  query
----  -----
cq_5  CREATE CONTINUOUS QUERY cq_5 ON falcon BEGIN SELECT mean(value) INTO falcon.autogen."5_cpu.user" FROM falcon.autogen."cpu.user" GROUP BY time(5m), * END

//查问cq中的数据
> select * from "5_cpu.user" order by time desc limit 10;
name: 5_cpu.user
time                 endpoint mean
----                 -------- ----
2020-06-09T04:55:00Z trovedev 6.806252400038498
2020-06-09T04:50:00Z trovedev 13.796289128479335
2020-06-09T04:45:00Z trovedev 16.57212610575366
2020-06-09T04:40:00Z trovedev 28.577591691423635
2020-06-09T04:35:00Z trovedev 6.02882334702075
2020-06-09T04:30:00Z trovedev 4.667398282326042
2020-06-09T04:25:00Z trovedev 4.746237171675345
2020-06-09T04:20:00Z trovedev 5.006169574660594
2020-06-09T04:15:00Z trovedev 5.002280037736261
2020-06-09T04:10:00Z trovedev 4.775274987155538

值得注意的是,CQ仅对实时的数据进行聚合,不会对历史数据聚合;也就是说,如果没有新的源数据,就不会产生新的聚合点。

逆向援用主动采样

应用通配符(*)和INTO查问的逆向援用语法,能够将db中的所有measurement依照对立的聚合办法进行采样,比方:将prometheus中的每个measuremnt每10min采样平均值,而后存入到opsultra的雷同名称的measurement中

create continuous query "cq_basic" on "prometheus" 
begin 
    select mean(*) into "opsultra"."six_month".:MEASUREMENT from /.*/ group by time(10m),* 
end

参考:
1.CQ:https://jasper-zhang1.gitbook…

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理