InfluxDB支持许多不同的数据查询工具,包括:
本教程将向您介绍在InfluxDB中查询数据的基础知识,并 主要关注可用于查询时间序列数据的两种语言:
本教程这一节中的示例将从 开始编写数据节。
Flux是一种函数式脚本语言,允许您查询和处理数据 InfluxDB和其他数据源。
这是编写Flux查询的简要介绍。 有关更深入的介绍,请参阅开始使用Flux。
当使用Flux查询InfluxDB时,您可以使用三个主要函数:
Flux使用pipe-forward操作符(|>)将一个函数的输出管道化为 输入下一个函数作为输入。
下面的Flux查询返回存储在 时间戳在2022-01- 01 T08:00:00 Z和2022-01- 01 T20:00:01 Z之间的家庭测量。
from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
使用InfluxDB UI、influx CLI或InfluxDB API执行Flux查询。
InfluxDB UI 流入CLI InfluxDB API
访问 本地主机:8086 在浏览器中登录并访问InfluxDB UI。
在左侧导航栏中,单击数据资源管理器。
数据浏览器
InfluxDB数据浏览器提供了两个使用Flux查询数据的选项:
要使用查询构建器构建和执行Flux查询:
使用查询构建器编写和执行Flux查询:
在数据资源管理器中,单击“脚本编辑器”。
在脚本编辑器文本字段中编写Flux查询。
注意事项:您可以手写函数,也可以使用函数列表 用于搜索和注入函数。
使用from(),并使用bucket参数指定要查询的存储桶。 对于本教程,查询入门存储桶。
使用range()指定要查询的时间范围。start 参数定义要包含在结果中的最早时间。 stop参数指定最晚的时间(排他地) 包括在结果中。
如果要使用在时间中选择的开始和停止时间 选择下拉菜单,使用v.timeRangeStart和v.timeRangeStop 作为start和stop参数的值。
使用filter()按初始测量过滤结果。
(可选)使用filter()按特定字段筛选结果。 在本教程中,有三个字段:CO、Hum和Temp。
(可选)使用filter()按特定 标记值。在本教程中,有一个标签,房间,有两个 潜在价值:客厅或厨房。
from(bucket: from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
单击“提交”以使用 选择过滤器和操作并显示结果。
查看通量查询结果
InfluxQL是一种类似SQL的查询语言,类似于大多数SQL语言,但 专为查询InfluxDB 0.x和1.x中的时间序列数据而设计。
因为InfluxQL是为InfluxDB的早期版本开发的,所以它依赖于 数据库和保留策略(DBRP),已由 InfluxDB 2.7中的buckets。 要在InfluxDB 2.7中使用InfluxQL,首先 将数据库和保留策略(DBRP)组合映射到InfluxDB存储桶。
使用InfluxQL查询InfluxDB时,最基本的查询包括以下内容 声明和条款:
下面的InfluxQL查询返回co、hum和temp字段 存储在具有时间戳的家庭测量中的房间标签 在2022-01- 01 T08:00:00 Z和2022-01- 01 T20:00:00 Z之间。
SELECT co,hum,temp,room FROM "get-started".autogen.home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T20:00:00Z'
这些只是InfluxQL语法的基础。 有关更深入的信息,请参阅InfluxQL文档。
使用influx CLI或InfluxDB API执行InfluxQL查询。
InfluxDB UI 流入CLI InfluxDB API
InfluxDB 2.7 UI不提供使用InfluxQL查询数据的方法。 对于构建和执行InfluxQL查询的用户界面,请考虑使用 计时腕表 Grafana with InfluxDB 2.7.
查看InfluxQL查询结果
恭喜!您已经学习了在InfluxDB中查询数据的基础知识。 要深入了解查询InfluxDB的所有方法,请参阅 查询文档InfluxDB部分的数据。
让我们继续讨论更高级的数据处理查询和自动化查询 InfluxDB任务