TL;DR 技术技巧 — Flux 时间范围
作者:Nora Mullen / 产品, 用例, 开发者
2020 年 6 月 26 日
导航至
在这篇文章中,我们分享一些关于在 Flux 中使用时间范围的基础知识。
问:时间范围在 Flux 查询中起什么作用?
答:Flux 在查询 InfluxDB 时需要时间范围。“无界”查询非常消耗资源,作为一种保护措施,Flux 不会在没有指定范围的情况下查询 InfluxDB。
在使用 from()
函数定义数据源后,使用管道前向运算符 (|>
) 将数据从数据源管道传输到 range()
函数。(我们将在下面深入探讨具体示例。)
问:range()
函数有哪些参数?
答:range()
函数 有两个参数:start
(开始时间),结果中包含的最早时间,和 stop
(结束时间)。对于每个参数,定义相对时间或绝对时间。请在下面了解有关每个选项的更多信息。
问:如何在 Flux 中设置相对时间范围?
答:使用相对于 now()
的持续时间为您的 Flux 查询定义相对范围。持续时间格式为持续时间字面量,表示一段时间长度,包含整数部分和持续时间单位部分:例如,-1h
表示现在之前一小时的时间范围。
Flux 查询中的相对时间范围示例
// Relative time range with start only. Stop defaults to now.
from(bucket:"example-bucket")
|> range(start: -1h)
// ...
// Relative time range with start and stop
from(bucket:"example-bucket")
|> range(start: -1h, stop: -10m)
// ...
问:如何在 Flux 中设置绝对时间范围?
答:使用时间戳为您的 Flux 查询定义绝对范围。时间戳格式为日期和时间字面量,由日期部分、时间部分和可选的时间偏移部分组成:例如,2019-10-15T09:00:00
表示 2019 年 10 月 15 日。
绝对时间范围示例
from(bucket:"example-bucket")
|> range(start: 2019-11-05T23:30:00Z, stop: 2019-11-06T00:00:00Z)
// ...
问:range()
函数是否包含与开始时间或结束时间匹配的点?
答:对于 start
参数,结果包括与指定的开始时间匹配的点。对于 stop 参数,结果排除与指定的结束时间匹配的点。
在以下示例中,与 -12h
匹配的点将被包括在内,而与 -15m
匹配的点将被排除在外。
from(bucket:"example-bucket")
|> range(start:-12h, stop: -15m)
// ...