使用此转换可将多个结果合并到一个表中,从而整合来自不同查询的数据。
这对于将多个时间序列结果转换成一个具有共享时间字段的单一宽表特别有用。
内部连接可合并来自多个表的数据,其中所有表都共享所选字段的相同值。这种类型的连接不包括每个结果中值不匹配的数据。
使用这种转换可以将多个查询结果(在通过的连接字段或首次时间列上合并)合并为一个结果,并删除无法成功连接的行。
在下面的示例中,两个查询返回表数据。在应用内部连接转换之前,它被可视化为两个独立的表。
Query A:
Time | Job | Uptime |
2020-07-07 11:34:20 | node | 25260122 |
2020-07-07 11:24:20 | postgre | 123001233 |
2020-07-07 11:14:20 | postgre | 345001233 |
对应的数据 SQL 语句如下:
select UNIX_TIMESTAMP('2020-07-07 11:34:20') as time, 'node' as Job, 25260122 as Uptime from dual union all select UNIX_TIMESTAMP('2020-07-07 11:24:20') as time, 'postgre' as Job, 123001233 as Uptime from dual union all select UNIX_TIMESTAMP('2020-07-07 11:14:20') as time, 'postgre' as Job, 345001233 as Uptime from dual
使用上述 SQL 语句作为 Grafana 的数据:
Query B:
Time | Server | Errors |
2020-07-07 11:34:20 | server 1 | 15 |
2020-07-07 11:24:20 | server 2 | 5 |
2020-07-07 11:04:20 | server 3 | 10 |
对应的数据 SQL 语句如下:
select UNIX_TIMESTAMP('2020-07-07 11:34:20') as time, 'server 1' as Server, 15 as Errors from dual union all select UNIX_TIMESTAMP('2020-07-07 11:24:20') as time, 'server 2' as Server, 5 as Errors from dual union all select UNIX_TIMESTAMP('2020-07-07 11:14:20') as time, 'server 3' as Server, 10 as Errors from dual
使用上述 SQL 语句作为 Grafana 的数据:
创建一个类型为“Join by field”的数据转换,应用内部连接(Mode=INNER)转换后的结果如下:
外部连接包括来自内连接的所有数据以及在每个输入中值不匹配的记录。内连接在时间字段上连接查询 A 和查询 B,而外连接则包括时间字段上不匹配的所有记录。
在下面的示例中,两个查询返回表格数据。在应用外连接转换之前,可视化为两个表。
Query A:
Time | Job | Uptime |
2020-07-07 11:34:20 | node | 25260122 |
2020-07-07 11:24:20 | postgre | 123001233 |
2020-07-07 11:14:20 | postgre | 345001233 |
见内部链接查询A。
Query B:
Time | Server | Errors |
2020-07-07 11:34:20 | server 1 | 15 |
2020-07-07 11:24:20 | server 2 | 5 |
2020-07-07 11:04:20(这里不同) | server 3 | 10 |
创建类型为“Join by field”的数据转换,并且将 Mode 选择为“OUTER (TIME SERIES)”,效果如下图:
在下面的示例中,模板查询在表格可视化中显示来自多个服务器的时间序列数据。一次只能查看一个查询的结果。
我使用时间字段对查询结果进行了连接转换。现在,我可以在这个新表中运行计算、合并和整理结果。
通过表格连接将来自不同查询的数据进行组合和分析,以全面了解您的信息。