Grafana 教程

数据转换:按数值过滤数据

image.png

使用此转换可直接在可视化中选择性地过滤数据点。此转换提供了根据应用于所选字段的一个或多个条件来包含或排除数据的选项。

如果您的数据源无法按值进行本机过滤,那么这种转换将非常有用。如果您使用的是共享查询,也可以用它来缩小要显示的值的范围。

所有字段的可用条件包括:

  • Regex - 与 regex 表达式匹配。

  • Is Null - 如果值为空,则匹配。

  • Is Not Null - 如果值不为空,则进行匹配。

  • Equal  - 如果值等于指定值,则匹配。

  • Different  - 如果值不同于指定值,则匹配。

数字字段的可用条件包括:

  • Greater - 如果值大于指定值,则匹配。

  • Lower - 如果值低于指定值,则匹配。

  • Greater or equal - 如果值大于或等于,则匹配。

  • Lower or equal - 如果值较低或相等,则匹配。

  • Range - 匹配指定最小值和最大值之间的范围,包括最小值和最大值。

一个示例

假如存在如下数据集:

Time

Temperature

Altitude

2020-07-07 11:34:23

32

101

2020-07-07 11:34:22

28

125

2020-07-07 11:34:21

26

110

2020-07-07 11:34:20

23

98

2020-07-07 10:32:24

31

95

2020-07-07 10:31:22

20

85

2020-07-07 09:30:57

19

101

我们使用 MySQL 来模拟,为了简便,不创建表,创建虚拟表,SQL 如下:

select UNIX_TIMESTAMP('2020-07-07 11:34:23') as time, 32 as temperature, 101 as altitude from dual
union all
select UNIX_TIMESTAMP('2020-07-07 11:34:22') as time, 28 as temperature, 125 as altitude from dual
union all
select UNIX_TIMESTAMP('2020-07-07 11:34:21') as time, 26 as temperature, 110 as altitude from dual
union all
select UNIX_TIMESTAMP('2020-07-07 11:34:20') as time, 23 as temperature, 98 as altitude from dual
union all
select UNIX_TIMESTAMP('2020-07-07 10:32:24') as time, 31 as temperature, 95 as altitude from dual
union all
select UNIX_TIMESTAMP('2020-07-07 10:31:22') as time, 20 as temperature, 85 as altitude from dual
union all
select UNIX_TIMESTAMP('2020-07-07 09:30:57') as time, 19 as temperature, 101 as altitude from dual

使用上述 SQL 作为 Grafana 的查询 SQL 语句如下图:

image.png

创建一个类型为“Filter data by values”的数据转换,如下图:

数据转换:按数值过滤数据

然后,将温度低于 30°C 的数据点排除在外,配置将如下所示:

  • Filter Type: include

  • Condition:Temperature 匹配  Lower Than 30 的行

执行上面配置您将得到以下结果,其中只包括温度低于 30°C 的数据:

image.png

您可以在筛选器中添加多个条件。例如,您可能希望仅在海拔高度大于 100 时才包含数据。为此,请将该条件添加到以下配置中:

  • Filter type: “Include”符合 “Match All”条件的行

  • Condition 1:“Temperature ”匹配 “Lower”30 的行

  • Condition 2:“Altitude ”匹配 “Greater”100 的行

当您有多个条件时,您可以选择是否要将操作(包含 Include/排除 Exclude)应用于匹配所有条件或匹配您添加的任何条件的行。

image.png

在上面的示例中,我们选择了全部匹配(Match All),因为我们想包含温度低于 30°C 和海拔高度高于 100 的行。如果我们想包含温度低于 30°C 或海拔高度高于 100 的行,则可以选择匹配任意行。这将包括原始数据中的第一行,该行的温度为 32°C(不符合第一个条件),但海拔高度为 101(符合第二个条件),因此被包括在内。

无效或配置不完整的条件将被忽略。

这种多功能数据过滤转换可让您根据特定条件有选择性地包含或排除数据点。自定义条件可定制数据显示,以满足您独特的分析需求。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号