文档文档

window() 函数

window() 使用常规时间间隔对记录进行分组。

该函数计算时间窗口,并将窗口边界存储在 _start_stop 列中。_start_stop 值根据行的 _time 值分配给行。

根据传递给 window() 的参数,单个输入行可以放入零个或多个输出表中。

timeColumn(默认为 _time)不在分组键中时,此函数旨在使用。如果 timeColumn *在* 分组键中,则生成的输出令人困惑,通常没有用处。

按日历月和年划分窗口

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

按周划分窗口

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

函数类型签名
(
    <-tables: stream[A],
    ?createEmpty: bool,
    ?every: duration,
    ?location: {zone: string, offset: duration},
    ?offset: duration,
    ?period: duration,
    ?startColumn: string,
    ?stopColumn: string,
    ?timeColumn: string,
) => stream[B] where A: Record, B: Record

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

参数

every

窗口之间的时间间隔持续时间。

period

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

period 可以为负数,表示开始和停止边界已反转。

offset

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

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

location

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

timeColumn

包含时间值的列。默认为 _time

startColumn

用于存储窗口开始时间的列。默认为 _start

stopColumn

用于存储窗口停止时间的列。默认为 _stop

createEmpty

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

tables

输入数据。默认为管道转发数据 (<-)。

示例

将数据窗口化为 30 秒间隔

data
    |> window(every: 30s)

查看示例输入和输出

每 20 秒窗口化一次,覆盖 40 秒周期

data
    |> window(every: 20s, period: 40s)

查看示例输入和输出

按日历月窗口化

data
    |> window(every: 1mo)

查看示例输入和输出


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版现已公开发布 Alpha 版

InfluxDB 3 开源版现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版的一部分。

InfluxDB 3 Core 是我们的新开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看