文档文档

计算变化率

此页面记录了 InfluxDB OSS 的早期版本。 InfluxDB OSS v2 是最新的稳定版本。 请参阅等效的 InfluxDB v2 文档: 计算变化率

使用 derivative() 函数 计算后续值之间的变化率,或使用 aggregate.rate() 函数 计算每个时间窗口的平均变化率。如果点之间的时间间隔不同,这些函数会将点归一化到共同的时间间隔,从而使值易于比较。

后续值之间的变化率

使用 derivative() 函数 计算后续非空值之间每单位时间的变化率。

data
  |> derivative(unit: 1s)

默认情况下,derivative() 仅返回正导数值,并将负值替换为 null。计算值以 浮点数 形式返回。

给定以下输入

_time_value
2020-01-01T00:00:00Z250
2020-01-01T00:04:00Z160
2020-01-01T00:12:00Z150
2020-01-01T00:19:00Z220
2020-01-01T00:32:00Z200
2020-01-01T00:51:00Z290
2020-01-01T01:00:00Z340

derivative(unit: 1m) 返回

_time_value
2020-01-01T00:04:00Z
2020-01-01T00:12:00Z
2020-01-01T00:19:00Z10.0
2020-01-01T00:32:00Z
2020-01-01T00:51:00Z4.74
2020-01-01T01:00:00Z5.56

结果表示后续值之间每分钟的变化率,负值设置为 null。

返回负导数值

要返回负导数值,请将 nonNegative 参数设置为 false

给定以下输入

_time_value
2020-01-01T00:00:00Z250
2020-01-01T00:04:00Z160
2020-01-01T00:12:00Z150
2020-01-01T00:19:00Z220
2020-01-01T00:32:00Z200
2020-01-01T00:51:00Z290
2020-01-01T01:00:00Z340

以下返回

|> derivative(
  unit: 1m,
  nonNegative: false
)
_time_value
2020-01-01T00:04:00Z-22.5
2020-01-01T00:12:00Z-1.25
2020-01-01T00:19:00Z10.0
2020-01-01T00:32:00Z-1.54
2020-01-01T00:51:00Z4.74
2020-01-01T01:00:00Z5.56

结果表示后续值之间每分钟的变化率,并包括负值。

每个时间窗口的平均变化率

使用 aggregate.rate() 函数 计算每个时间窗口的平均变化率。

import "experimental/aggregate"

data
  |> aggregate.rate(
    every: 1m,
    unit: 1s,
    groupColumns: ["tag1", "tag2"]
  )

aggregate.rate() 返回由 every 定义的时间间隔内每 unit 的平均变化率(作为 浮点数)。负值被替换为 null

aggregate.rate() 不支持 nonNegative: false

给定以下输入

_time_value
2020-01-01T00:00:00Z250
2020-01-01T00:04:00Z160
2020-01-01T00:12:00Z150
2020-01-01T00:19:00Z220
2020-01-01T00:32:00Z200
2020-01-01T00:51:00Z290
2020-01-01T01:00:00Z340

以下返回

|> aggregate.rate(
  every: 20m,
  unit: 1m
)
_time_value
2020-01-01T00:20:00Z
2020-01-01T00:40:00Z10.0
2020-01-01T01:00:00Z4.74
2020-01-01T01:20:00Z5.56

结果表示每 20 分钟间隔每分钟平均变化率,负值设置为 null。时间戳表示用于平均值的时间窗口的右边界。


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在一样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 基于 Core 的基础构建,增加了高可用性、读取副本、增强的安全性以及数据压缩,从而实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看