开始使用 Flux
本页面记录了 InfluxDB OSS 的早期版本。InfluxDB OSS v2 是最新稳定版本。查看等效的 InfluxDB v2 文档:开始使用 Flux 和 InfluxDB。
Flux 是 InfluxData 为查询、分析和处理数据而设计的新功能数据脚本语言。
本多部分入门指南将介绍与 Flux 相关的重要概念。它涵盖了使用 Flux 从 InfluxDB 查询时间序列数据,并介绍了 Flux 语法和函数。
您需要什么
InfluxDB v1.8+
Flux 集成到 InfluxDB v1.8+ 中,并可用于查询存储在 InfluxDB 中的数据。InfluxDB influx
CLI 还包括一个 -type=
选项,当设置为 flux
时,将启动一个交互式 Flux Read-Eval-Print-Loop (REPL),允许您从命令行编写和运行 Flux 查询。
有关下载和安装 InfluxDB 的信息,请参阅 InfluxDB 安装。
Chronograf v1.8+
不是必需的,但强烈推荐。Chronograf v1.8 的数据探索器提供了一个用于编写 Flux 脚本和可视化结果的用户界面(UI)。Chronograf v1.8+ 中的仪表板也支持 Flux 查询。
有关下载和安装 Chronograf 的信息,请参阅 Chronograf 安装。
关键概念
Flux 介绍了一些您在开始时应该理解的重要新概念。
存储桶
Flux 为 InfluxDB 引入了“存储桶”,这是一种新的数据存储概念。一个 存储桶 是一个命名位置,其中存储有数据,并具有保留策略。它类似于 InfluxDB v1.x 的“数据库”,但它是数据库和保留策略的组合。当使用多个保留策略时,每个保留策略都作为其自己的存储桶处理。
Flux 的 from()
函数,它定义了 InfluxDB 数据源,需要一个 bucket
参数。当使用 Flux 与 InfluxDB v1.x 一起使用时,使用以下存储桶命名约定,将数据库名和保留策略组合成一个存储桶名称
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 查询的选项,但在开始时,我们建议使用以下选项
1. Chronograf 的数据探索器
Chronograf的数据探索器使得编写您的第一个Flux脚本和可视化结果变得简单。要使用Chronograf的Flux UI,打开数据探索器,然后在图形占位符上方的源下拉菜单右侧,选择将Flux作为源类型。
这将提供模式、脚本和函数面板。模式面板允许您探索您的数据。脚本面板是您编写Flux脚本的地方。函数面板提供了您的Flux查询中可用的函数列表。
2. influx CLI
influx
CLI是一个交互式shell,用于查询InfluxDB。在InfluxDB v1.8+中,使用-type=flux
和-path-prefix=/api/v2/query
选项来打开一个Flux REPL,在那里您可以编写和运行Flux查询。
influx -type=flux -path-prefix=/api/v2/query
这个页面有帮助吗?
感谢您的反馈!