使用 Flux 查询时,不同的保留策略 (RP) 的行为是不是类似于表?

Posted

技术标签:

【中文标题】使用 Flux 查询时,不同的保留策略 (RP) 的行为是不是类似于表?【英文标题】:Do different Retention Policies (RP) behave like tables when Querying with Flux?使用 Flux 查询时,不同的保留策略 (RP) 的行为是否类似于表? 【发布时间】:2020-05-25 05:45:22 【问题描述】:

我想将跨不同保留政策的相同度量查询到单个图表中。理想情况下,我想在查询本身中执行此操作,因为我正在使用 Grafana。

根据 Flux 文档,“Flux 在表格中构建所有数据。当数据从数据源流式传输时,Flux 将其格式化为带注释的逗号分隔值 (CSV),表示表格。然后函数操作或处理它们并输出新表格。”

在这种情况下,不同的保留策略会表现得像不同的表吗?我可以使用 union() 函数来获得我想要的吗?任何见解将不胜感激。

【问题讨论】:

【参考方案1】:

因此,对于这样的事情,您只需使用两个不同的from 语句并使用unionjoin 将它们组合起来。查看union 上的文档以获取查询示例:https://v2.docs.influxdata.com/v2.0/reference/flux/stdlib/built-in/transformations/union/#examples

left = from(bucket: "database1/policy1")
  |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:53:50Z)
  |> filter(fn: (r) =>
    r._field == "usage_guest" or
    r._field == "usage_guest_nice"
  )
  |> drop(columns: ["_start", "_stop"])

right = from(bucket: "database1/policy2")
  |> range(start: 2018-05-22T19:53:50Z, stop: 2018-05-22T19:54:20Z)
  |> filter(fn: (r) =>
    r._field == "usage_guest" or
    r._field == "usage_idle"
  )
  |> drop(columns: ["_start", "_stop"])

union(tables: [left, right])

在这种情况下,from 函数中使用的bucket 将采用database_name/rp 的形式。请参阅 1.x 中有关存储桶命名约定的文档:https://docs.influxdata.com/flux/v0.50/introduction/getting-started/#buckets

【讨论】:

以上是关于使用 Flux 查询时,不同的保留策略 (RP) 的行为是不是类似于表?的主要内容,如果未能解决你的问题,请参考以下文章

如何保留本地组件数据,例如微调器/错误,在 Flux 商店之外?

仅更新 JSON 对象的一个​​值并使用 React Flux 保留旧的值

是否可以对 influxdb 中的默认保留策略执行删除查询?

长到宽格式:保留行顺序并仅为新创建的列名使用部分行值

5,6,7_InfluxDB数据保留策略,InfluxDB的关键概念,带有时区进行查询示例

influxdb保留策略