Flux 数据脚本语言
Flux是一种功能性数据脚本语言,旨在查询、分析和处理时间序列数据。它将InfluxQL的强大功能与TICKscript的功能结合成一个统一的语法。
Flux v0.65 已经准备好投入生产,并与 **InfluxDB Enterprise v1.8+ 一起发布。 InfluxDB v1.8 中的 Flux 实现为只读,不支持将数据写回 InfluxDB。
Flux设计原则
Flux旨在易于使用、可读、灵活、可组合、可测试、可贡献和可共享。 它的语法主要受到2018年最受欢迎的脚本语言的启发, JavaScript,并采用功能性的方法进行数据探索和处理。
以下示例说明了如何从一个存储桶(类似于 InfluxQL 数据库)中拉取最近五分钟的数据,按照 cpu 测量和 cpu=cpu-total 标签过滤这些数据,以 1 分钟的间隔对数据进行划分,并计算每个窗口的平均值:
from(bucket: "telegraf/autogen")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "cpu" and r.cpu == "cpu-total")
|> aggregateWindow(every: 1m, fn: mean)
执行 Flux 查询
使用 InfluxDB CLI、API 和 Chronograf 数据探索器来执行 Flux 查询。
使用 Flux 查询数据
关于Flux的常见和复杂查询及用例的指南。
优化 Flux 查询
优化您的Flux查询,以减少其内存和计算(CPU)需求。
启用 Flux
启用Flux在您的InfluxDB配置中的说明。
Flux 与 InfluxQL
Flux 是 InfluxQL 和其他 SQL 类查询语言的替代品,用于查询和分析数据。 Flux 使用函数式语言模式,使其功能强大、灵活,并能够克服 InfluxQL 的许多限制。 本文概述了许多可以使用 Flux 但不能使用 InfluxQL 的任务,并提供有关 Flux 和 InfluxQL 一致性的信息。
使用 Flux 可能实现的功能
连接
InfluxQL 从未支持连接。可以使用 TICKscript 实现连接,
但即使是 TICKscript 的连接能力也是有限的。
Flux 的 join() 函数 允许您
从任何存储桶、任何测量以及任何列连接数据,前提是
每个数据集都包含要连接的列。
这为真正强大和有用的操作打开了大门。
开始使用 Flux
开始使用 Flux,这是 InfluxData 新的功能性数据脚本语言。本分步指南将带您了解基础知识,并帮助您入门。