开始使用Flux
Flux 是 InfluxData 的新功能性数据脚本语言,旨在查询、分析和操作数据。
本多部分入门指南将介绍与 Flux 相关的重要概念。它涵盖了使用 Flux 从 InfluxDB 查询时间序列数据,并介绍了 Flux 语法和函数。
你需要什么
InfluxDB v1.8+
Flux v0.65 已内置于 InfluxDB v1.8,可用于查询存储在 InfluxDB 中的数据。
关于下载和安装InfluxDB的信息,请参见 InfluxDB installation。
Chronograf v1.8+
不是必需的,但强烈推荐。 Chronograf v1.8 的数据探索器提供了一个用户界面(UI)用于编写 Flux 脚本和可视化结果。 Chronograf v1.8+ 中的仪表板也支持 Flux 查询。
有关下载和安装Chronograf的信息,请参见 Chronograf installation。
关键概念
Flux 引入了一些重要的新概念,您应该在开始时了解这些概念。
桶
Flux 引入了“桶”,这是 InfluxDB 的一种新的数据存储概念。 一个 桶 是一个命名的位置,用于存储具有保留策略的数据。 它类似于 InfluxDB v1.x 的“数据库”,但结合了数据库和保留策略的特点。 在使用多个保留策略时,每个保留策略都被视为其自己的桶。
Flux的 from() 函数,它定义了一个 InfluxDB 数据源,需要一个 bucket 参数。使用 Flux 与 InfluxDB v1.x 时,请使用以下 bucket 命名约定,将数据库名称和保留策略组合成一个单一的 bucket 名称:
InfluxDB v1.x 存储桶命名规范
// Pattern
from(bucket:"<database>/<retention-policy>")
// Example
from(bucket:"telegraf/autogen")
管道转发运算符
Flux广泛使用管道转发操作符 (|>) 来串联操作。在每个函数或操作之后,Flux返回一个包含数据的表或表的集合。管道转发操作符将这些表传输到下一个函数或操作,在那里它们被进一步处理或操作。
表格
Flux将所有数据结构化为表格。 当数据从数据源流式传输时,Flux将其格式化为带注释的逗号分隔值(CSV),表示表格。 然后,函数处理或操作它们并输出新表格。 这使得将函数链接在一起以构建复杂查询变得容易。
分组键
每个表都有一个 组键,它描述了表的内容。 这是一个列的列表,表中的每一行都将具有相同的值。 每一行中具有唯一值的列 不是 组键的一部分。
由于函数处理和转换数据,每个函数都会修改输出表的组键。理解函数如何修改表和组键是正确地调整数据以获得所需输出的关键。
示例组键
[_start, _stop, _field, _measurement, host]
请注意,_time 和 _value 被排除在示例组键之外,因为它们对每一行都是唯一的。
用于处理Flux的工具
您有多个 编写和运行 Flux 查询 的选项,但在您开始时,我们推荐使用以下内容:
Chronograf的数据探索器
Chronograf的数据探索器使您能够轻松编写第一个Flux脚本并可视化结果。要使用Chronograf的Flux UI,请打开数据探索器,然后在图表占位符上方的源下拉菜单右侧,选择Flux作为源类型。
这将提供 模式、 脚本 和 函数 面板。 模式面板允许您探索数据。 脚本面板是您编写 Flux 脚本的地方。 函数面板提供可在您的 Flux 查询中使用的函数列表。