使用Flux在InfluxDB中按月份或年份聚合

导航至

一年多以前,我们做出了第一个提交和对支持Flux所需和需要的特性的承诺。这是一个我们早在InfluxDB 1.x版本时就想要的特性,但我们从未能够将其作为数据库的一部分实现。直到现在。

最近,我们合并并部署了对Flux语言的更改,以支持在窗口时将月份和年份作为特殊间隔。今天,我将向您展示如何使用此功能,以及它可以为分析您的数据带来的强大功能。

本示例使用了位于这里的NOAA样本数据集。我略微修改了输入,删除了与1.x相关的行,并使用curl将数据写入新的桶中。然后我使用Flux编写了以下代码。

from(bucket: "NOAA")
	    |> range(start: 2015-08-01T00:00:00Z, stop: 2015-10-01T00:00:00Z)
	    |> filter(fn: (r) => r._measurement == "h2o_feet" and r._field == "water_level")
	    |> aggregateWindow(every: 1mo, fn: mean)

它成功了!当我运行这个查询时,我得到了每个系列的两个点。其中一个给出了八月份的平均值,另一个给出了九月份的平均值。但这不仅仅适用于一个月。我也可以使用1y来按年聚合,并且会考虑到闰年。如果我想按季度聚合请求数量,只需使用3mo 即可。

我们希望这个功能能帮助人们更好地理解他们的数据,并希望继续扩展Flux的功能,以帮助更好地理解数据。