influxDB 相关基础语法

 一、连续查询语法


https://docs.influxdata.com/influxdb/v1.5/query_language/continuous_queries/

连续查询:可以将基础表的数据,按照需要粒度统计到另外一张表中

一、新建连续查询(需要管理员权限)语法:

CREATE CONTINUOUS QUERY  ON

[RESAMPLE [EVERY ] [FOR ]]

BEGIN SELECT  ()[,()] INTO

FROM  [where ] GROUP BY time()[,]

END

注释:

stuff 原料,材料,填充物

interval 幕间休息,间隔

查询部分被 CREATE CONTINUOUS QUERY [...] BEGIN END 所包含,主要的逻辑代码也是在这一部分。

示例

> CREATE CONTINUOUS QUERY cq_30m ON test BEGIN SELECT mean(used) INTO mem_used_30m FROM mem GROUP BY time(30m) END

示例在test库中新建了一个名为 cq_30m 的连续查询,每三十分钟取一个used字段的平均值,加入 mem_used_30m 表中。使用的数据保留策略都是 default。

CREATE CONTINUOUS QUERY rpcmon_statis_module ON rpcmon BEGIN SELECT sum("total"), module  INTO trace_stats_module FROM trace_stats GROUP BY time(1m) END


CREATE CONTINUOUS QUERY rpcmon_statis ON rpcmon BEGIN SELECT mean(*),module  INTO trace_stats_module_1min FROM trace_stats GROUP BY time(1m), module END

1)显示所有已存在的连续查询

查询所有连续查询可以使用如下语句:

> SHOW CONTINUOUS QUERIES

可以看到其连续查询的名称以及 语句等信息。

2)删除Continuous Queries

删除连续查询的语句如下:

DROP CONTINUOUS QUERY ON


实战demo

创建:

CREATE CONTINUOUS QUERY "cq_trace_stats" ON "rpcmon" BEGIN SELECT mean("total") INTO "trace_stats_1min" FROM "trace_stats" GROUP BY time(1m) END

CREATE CONTINUOUS QUERY "cq_trace_stats" ON "rpcmon" BEGIN SELECT mean("total") INTO "trace_stats_1min" FROM "trace_stats" GROUP BY time(1m) END

CREATE CONTINUOUS QUERY cq_trace_stats ON rpcmon BEGIN SELECT mean(*) INTO trace_stats_OneMin FROM rpcmon.autogen.trace_stats GROUP BY time(1m),module,interf 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

三、指定连续查询的执行频次

可以使用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。


踩坑:当原始表的数据不是实时的时候,比如有延迟,那么连续查询就不会生效,也就不会有数据进入到连续查询的target表里面

作者:米茶饿了

链接:https://www.jianshu.com/p/830e42257473

来源:

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


二、基础查询

influxdb 中文文档地址:https://jasper-zhang1.gitbooks.io/influxdb/content/Query_language/data_exploration.html

1) 时间倒序,限制条数

select * from trace_stats_1min ORDER BY time DESC limit 2

2) 如果infuxdb显示的是utc时间格式,则使用以下方式根据时间去查询数据

调整时区

如果需要使用北京时间(东八区),可以在SQL中使用tz关键字:

select *fromdisk where time >='2018-11-23 14:30:39'andtime <='2018-11-23 14:32:32 'tz('Asia/Shanghai')

3)查询tag

SHOW TAG KEYS

4)查询field

SHOW FIELD KEYS

你可能感兴趣的:(influxDB 相关基础语法)