influxdb 查询:通过正则表达式指定或过滤标签

Posted

技术标签:

【中文标题】influxdb 查询:通过正则表达式指定或过滤标签【英文标题】:influxdb query: specify or filter tag by regex 【发布时间】:2017-08-21 22:36:16 【问题描述】:

根据docs,我们可以...

使用正则表达式在 WHERE 子句中指定带有值的标记。

当我像这样查询我的 influxdb 时,我得到了想要的结果。

> SELECT "field" FROM "measurement" WHERE tag = 19????

但是,当用正则表达式替换 where 过滤时,我没有得到任何结果。

> SELECT "field" FROM "measurement" WHERE tag =~ /19/????

谁能告诉我这是为什么?

【问题讨论】:

【参考方案1】:

自己发现了错误……

我有一个字段和一个具有相同键的标签。所以我在做

> SELECT "filed_key" from "measurement" WHERE field_key =~ /val/

现在我已经更改了我的架构,以便跨字段和标签的键是唯一的,并且一切都按预期工作。

github上也有关于这种现象的讨论。

【讨论】:

【参考方案2】:

在 InfluxDB 2.0 中使用 Flux 查询的正则表达式。

src:https://docs.influxdata.com/influxdb/cloud/query-data/flux/regular-expressions/

以下示例排除了字段键中没有 _percent 的记录。

来自(桶:“示例桶”) |> 范围(起点:-15m) |> 过滤器(fn:(r) => r._measurement == "mem" 和 r._field =~ /_percent/)

【讨论】:

以上是关于influxdb 查询:通过正则表达式指定或过滤标签的主要内容,如果未能解决你的问题,请参考以下文章

数据库笔记-SQL过滤(LIKE&正则表达式)

通过正则表达式过滤器过滤 Google BigQuery 列

js正则表达式过滤以指定字符开头以指定字符结尾的文本内容

Ruby 正则表达式

js split 正则表达式过滤引号中的逗号

Js正则表达式的如何写这样一个匹配规则!1) 取指定范围的内容 2)过滤指定范围的内容