influxdb 时序数据库知识点个人记录合集

influxdb 时序数据库知识点个人记录合集

官网传送门:https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/
InfluxDB Studio:https://github.com/CymaticLabs/InfluxDBStudio

1、influxdb支持的运算符

Meaning Operator
等于 =
不等于 !=<>
大于 >
大于等于 >=
小于 <
小于等于 <=

2、group by 分组

与mysql的分组规则基本一致,值得注意的点是:
(1)influxdb中使用 time(),如 group by time(1d) 为以1天为分组
(2)使用 group by时分组的字段会连同查询的字段一起输出,而查询的字段只能是聚合函数
如下:

select count(CJSJ) AS total,count(LJNSXH) as ljnsxhtotal  FROM tableName GROUP BY time(1d), SBXLH fill(0)

输出:total,ljnsxhtotal,SBXLH,time

3、聚合函数

(1)influxdb中使用聚合函数与mysql存在差异,influxdb中的聚合函数只能使用基础的功能,如count(1)不可使用,可使用count(字段) 返回字段有数据的总条数,不能使用count(time)
(2)聚合函数内加条件
如:count(字段=0 or NULL)sum(字段+字段)sum(CASE when online = 1 then 1 else 0 end)等,这些在influxdb中都不具备这种功能,需要加条件只能在where添加筛选

官网:https://docs.influxdata.com/influxdb/v1.7/flux/guides/group-data/

4、空数据处理 fill(),相当于mysql的IFNULL的作用,但不能指定字段

给空数据赋予某个值,如下,给是空值的赋予0(可以赋予其它值,如-1、2),只能位于sql所有条件之后

select * from tableName fill(0)

官网:https://docs.influxdata.com/influxdb/v1.7/flux/guides/fill/

5、返回第一条/最新一条非空数据

FIRST()/LAST()返回按时间排序的第一条/最新一条非空数据
(1)返回第一条数据 first(time)
(2)返回最新一条数据,last(time)
如下,返回采集时间最新的一条数据:

SELECT LAST("CJSJ")  AS "CJSJ",SBXLH FROM "processdata"  group by "SBXLH"
// or
SELECT LAST("CJSJ")  AS "CJSJ",COUNT(CJSJ) AS total FROM "processdata" 

6、排序 order by time desc

时序数据库中的排序只能用于time 进行排序

7、时间查询

意义 符号
微秒 u or µ
毫秒 ms
s
m
h
d
w

(1)查询过去七天的数据

select * from tableName where time > now()-7d

(2)查询过去5分钟的数据

select * from tableName where time > now()-5m

(3)查询昨天的数据
使用 new Date().getTime() 的前十位数,time的时间格式为2022-04-13T02:33:34.000000001z

select * from tableName where time >= 1649865600s and time <= 1649951999s

也可以使用的格式为

select * from tableName where time >= '2022-04-13T16:00:00Z' and time <= '2022-04-14T15:59:59Z'

查询昨天与查询过去一天的时间范围是不一样的,查询过去一天的数据当前时间往前24小时

7、终端操作influxdb数据库

已安装influxdb的前提下
(1)连接

influx

在这里插入图片描述

(2)用户登录

auth

输入账号密码
在这里插入图片描述
(3)查看数据库

show databases

influxdb 时序数据库知识点个人记录合集_第1张图片
(4)切换数据库

use mydb

(5)查看连续查询

show continuous queries

(6)查询

select * from tables

你可能感兴趣的:(SQL,influxdb时序数据库,influxdb,sql,时序数据库,1024程序员节)