使用此转换可直接在可视化中选择性地过滤数据点。此转换提供了根据应用于所选字段的一个或多个条件来包含或排除数据的选项。
如果您的数据源无法按值进行本机过滤,那么这种转换将非常有用。如果您使用的是共享查询,也可以用它来缩小要显示的值的范围。
所有字段的可用条件包括:
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 语句如下图:
创建一个类型为“Filter data by values”的数据转换,如下图:
然后,将温度低于 30°C 的数据点排除在外,配置将如下所示:
Filter Type: include
Condition:Temperature 匹配 Lower Than 30 的行
执行上面配置您将得到以下结果,其中只包括温度低于 30°C 的数据:
您可以在筛选器中添加多个条件。例如,您可能希望仅在海拔高度大于 100 时才包含数据。为此,请将该条件添加到以下配置中:
Filter type: “Include”符合 “Match All”条件的行
Condition 1:“Temperature ”匹配 “Lower”30 的行
Condition 2:“Altitude ”匹配 “Greater”100 的行
当您有多个条件时,您可以选择是否要将操作(包含 Include/排除 Exclude)应用于匹配所有条件或匹配您添加的任何条件的行。
在上面的示例中,我们选择了全部匹配(Match All),因为我们想包含温度低于 30°C 和海拔高度高于 100 的行。如果我们想包含温度低于 30°C 或海拔高度高于 100 的行,则可以选择匹配任意行。这将包括原始数据中的第一行,该行的温度为 32°C(不符合第一个条件),但海拔高度为 101(符合第二个条件),因此被包括在内。
无效或配置不完整的条件将被忽略。
这种多功能数据过滤转换可让您根据特定条件有选择性地包含或排除数据点。自定义条件可定制数据显示,以满足您独特的分析需求。