开始使用Flux
Flux是一种函数式数据脚本语言,旨在将查询、处理、分析和对数据采取行动统一为单一语法。
Flux 概述
要理解Flux的概念工作方式,请考虑处理水的过程。水从一个源头提取,受到需求的限制,通过一系列站点输送以进行修改(去除沉淀物、净化等),并以可消费的状态交付。
基本 Flux 查询
像处理水一样,Flux 查询执行以下操作:
- 从源中检索指定数量的数据。
- 根据时间或列值过滤数据。
- 处理和转换数据为预期结果。
- 返回结果。
要查看如何从源中检索数据,请选择数据源:InfluxDB、CSV或PostgreSQL。
from(bucket: "example-bucket")
|> range(start: -1d)
|> filter(fn: (r) => r._measurement == "example-measurement")
|> mean()
|> yield(name: "_results")
import "csv"
csv.from(file: "path/to/example/data.csv")
|> range(start: -1d)
|> filter(fn: (r) => r._measurement == "example-measurement")
|> mean()
|> yield(name: "_results")
import "sql"
sql.from(
driverName: "postgres",
dataSourceName: "postgresql://user:password@localhost",
query: "SELECT * FROM TestTable",
)
|> filter(fn: (r) => r.UserID == "123ABC456DEF")
|> mean(column: "purchase_total")
|> yield(name: "_results")
每个示例包括以下函数(按列出顺序):
from()从数据源中检索数据。- 管道转发操作符 (
|>) 将每个函数的输出作为输入发送到下一个函数。 range(),filter(), 或两者结合根据列值筛选数据。mean()计算从数据源返回的值的平均值。yield()将结果返回给用户。
有关基本 Flux 查询的详细信息,请参阅 Flux query basics。