aggregate函数定义
aggregateWindow = (every, fn, columns=["_value"], timeColumn="_stop", timeDst="_time", tables=<-) =>
tables
|> window(every:every)
|> fn(column:column)
|> duplicate(column:timeColumn, as:timeDst)
|> window(every:inf, timeColumn:timeDst)
使用示例:查询的数据输入只有1万条。
db = from(bucket: "mydata/autogen")
|> range(start: -7d)
|> filter(fn: (r) => r._measurement == "msd" and (r._field == "current"))
db
|> aggregateWindow(every: 50ms,fn:mean)
运行后,整个docker都会卡死,内存监控:

虚拟机分配内存直接用完,虚拟内存也疯狂读写,磁盘用量很大:

使用下面的等效脚本就不会出现这种问题,而且很快,内存占用和运行脚本前基本没有什么变化
db = from(bucket: "mydata/autogen")
|> range(start: -7d)
|> filter(fn: (r) => r._measurement == "msd" and (r._field == "current"))
db
|> window(every: 50ms)
|> mean()
|> duplicate(column:"_stop",as:"_time")
|> window(every:inf)
在使用InfluxDB的Flux函数aggregateWindow时,遇到内存占用剧增导致Docker容器卡死的情况。官方示例查询1万条数据即引发问题,而替换为等效脚本则能避免内存问题并保持高效运行。
294

被折叠的 条评论
为什么被折叠?



