摘要
在前一篇文章:InfluxDB学习之InfluxDB连续查询(Continuous Queries)中,我们学习了InfluxDB的连续查询的一些基本知识,今天我们再来学习下InfluxDB的另外一些高级知识。
在前一篇文章:InfluxDB学习之InfluxDB连续查询(Continuous Queries)中,我们学习了InfluxDB的连续查询的一些基本知识,今天我们再来学习下InfluxDB的另外一些高级知识。
更多InfluxDB详细教程请看:InfluxDB系列学习教程目录
一、连续查询语法
连续查询的语法如下:
CREATE CONTINUOUS QUERY ON [RESAMPLE [EVERY ] [FOR ]] BEGIN SELECT ()[,()] INTO FROM [WHERE ] GROUP BY time()[,] END
其中,基本的用法在那篇文章中已经讲到了,本文主要为大家介绍下它的一些高级特性。
二、指定连续查询的时间范围
可以使用RESAMPLE FOR关键词来指定连续查询的时间范围,比如,每次执行都对1小时内的数据进行连续查询:
> CREATE CONTINUOUS QUERY vampires_1 ON transylvania RESAMPLE FOR 60m BEGIN SELECT count(dracula) INTO vampire_populations_1 FROM raw_vampires GROUP BY time(30m) END
这个语句每次会将1小时的数据执行连续查询,也就是说,每次执行时,会将now()到now()-30m和now()-30m到now()-60m分别做连续查询,这样我们就可以手动指定连续查询的时间范围了。
三、指定连续查询的执行频次
可以使用RESAMPLE EVERY关键词来指定连续查询的执行频次,比如,指定连续查询的执行频次为每15m执行一次:
> CREATE CONTINUOUS QUERY vampires ON transylvania RESAMPLE EVERY 15m BEGIN SELECT count(dracula) INTO vampire_populations FROM raw_vampires GROUP BY time(30m) END
这样,连续查询会每隔15m执行一次。
四、同时指定连续查询的范围和频次
将RESAMPLE FOR 和 EVERY关键词同时使用,可以同时指定连续查询的范围和频次,如下:
> CREATE CONTINUOUS QUERY vampires_2 ON transylvania RESAMPLE EVERY 15m FOR 60m BEGIN SELECT count(dracula) INTO vampire_populations_2 FROM raw_vampires GROUP BY time(30m) END
这个语句指定连续查询每15m执行一次,每次执行的范围为60m。
好了,有关连续查询的高级部分就先为大家介绍到这里,希望对大家有所帮助。
更多InfluxDB详细教程请看:InfluxDB系列学习教程目录