文档文档

aggregateWindow() 函数

aggregateWindow() 通过将数据分组到固定的时间窗口并对每个窗口应用聚合或选择函数来下采样数据。

除了指定的 column 之外,不在组键中的所有列(包括 _time)都将从输出表中删除。aggregateWindow() 使用 timeSrctimeDst 参数将时间分配给聚合值。

aggregateWindow() 需要输入数据中的 _start_stop 列。使用 range()_start_stop 分配值。

timeColumn(默认为 _time)不在组键中时,此函数是预期的用途。如果 timeColumn 组键中,则生成的输出令人困惑并且通常没有用。

按日历月份和年份下采样

everyperiodoffset 参数支持所有有效的持续时间单位,包括日历月份(1mo)和年份(1y)。

按周下采样

当按周(1w)进行窗口操作时,使用 Unix 纪元(1970-01-01T00:00:00Z UTC)来确定周。Unix 纪元是在星期四,因此所有计算的周都是从星期四开始的。

函数类型签名
(
    <-tables: stream[D],
    every: duration,
    fn: (<-: stream[B], column: A) => stream[C],
    ?column: A,
    ?createEmpty: bool,
    ?location: {zone: string, offset: duration},
    ?offset: duration,
    ?period: duration,
    ?timeDst: string,
    ?timeSrc: string,
) => stream[E] where B: Record, C: Record, D: Record, E: Record

有关更多信息,请参阅 函数类型签名

参数

every

(必需) 窗口之间的时间长度。

period

窗口的持续时间。默认为 every 值。

period 可以是负数,表示起始和停止边界被反转。

offset

移动窗口边界的持续时间。默认为 0s

offset 可以是负数,表示偏移量在时间上向后移动。

fn

(必需) 应用到每个时间窗口的聚合或选择函数。

location

用于确定时区的位置。默认为 location 选项。

column

要操作的列。

timeSrc

用于新聚合值的源时间值的列。默认为 _stop

timeDst

存储聚合值时间值的列。默认为 _time

createEmpty

为空窗口创建空表。默认为 true

注意:当使用 createEmpty: true 时,聚合函数返回空表,但选择函数不返回空表。根据设计,选择器删除空表。

tables

输入数据。默认是管道传输的数据(<-)。

示例

使用具有默认参数的聚合函数

data
    |> aggregateWindow(every: 20s, fn: mean)

查看示例输入和输出

指定聚合函数的参数

要使用不提供默认参数的函数与 aggregateWindow(),请定义一个匿名函数,带有 columntables 参数,将这些表管道传递到聚合或选择函数,并定义所有必需的参数

data
    |> aggregateWindow(
        column: "_value",
        every: 20s,
        fn: (column, tables=<-) => tables |> quantile(q: 0.99, column: column),
    )

查看示例输入和输出

按日历月份下采样

data
    |> aggregateWindow(every: 1mo, fn: mean)

查看示例输入和输出

按星期一开始的日历周下采样

Flux 从 Unix 纪元增加周,当时是星期四。因此,默认情况下,所有 1w 窗口都从星期四开始。使用 offset 参数将每周窗口的开始时间移至所需的星期几。

星期开始偏移
星期一-3d
星期二-2d
星期三-1d
星期四0d
星期五1d
星期六2d
星期日3d
data
    |> aggregateWindow(every: 1w, offset: -3d, fn: mean)

查看示例输入和输出


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB v3 增强功能和 InfluxDB 集群版现已正式发布

新功能包括更快的查询性能和管理工具,推动了 InfluxDB v3 产品线的进步。InfluxDB 集群版现已正式发布。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面进行了显著增强,并提供了新的管理工具。这些增强包括用于监控 InfluxDB 集群健康的操作仪表板、InfluxDB 云专用版中的单点登录 (SSO) 支持,以及用于令牌和数据库的新管理 API。

了解 v3 的新增强功能


InfluxDB 集群版正式发布

InfluxDB 集群版现已正式发布,并为您在自管理的堆栈中提供了 InfluxDB v3 的功能。

与我们讨论 InfluxDB 集群版