Select Grafana InfluxDB 中的字符串
Select string FROM in Grafana InfluxDB
我在 InfluxDB 中有一些销售数据,基本上每 10 秒我记录一次来自 SQL 的销售总数,然后将其分解为字段中不同项目的销售。
所以一行可能看起来像:
time Bicycles Shovels Hats Candles Sales
01/01/2019 12 6 2 4 24
02/01/2019 14 9 3 5 31
(这是这个问题的虚拟数据,并没有反映图像中的数字,这些数字来自我一直在使用实际数据进行的生产测试)
需要强调的是,这是累积的,每个条目都随着销售数量的增长而增长。
然后我可以使用 Grafana 按时间 (1d) 显示差异 (max(sales)) 以显示总销售额(在这种情况下为每天)
我还想做的是在 table 中显示每个组(天)的最大销售额,创纪录的销售额 table,我们过去的表现如何。
所以我在 Grafana 中有 3 个查询:
SELECT time, max(difference) FROM (
SELECT difference(max("Sales"))
FROM "autogen"."Paid_Orders"
WHERE $timeFilter
GROUP BY time(1d) fill(none)
)
在后续查询中将 "sales" 换成自行车和帽子(无论什么),我最终得到一个 table,看起来像:
问题是我不知道哪一行是哪个字段。通常(在 SQL 中)我会做一些类似 SELECT 'Sales' 作为类型等的事情......添加一个包含 "Sales" 的列。但我无法将其视为 Grafana 或 Influx 中的一个选项。
- 我记录的数据有误吗?我可以为此利用标签吗?
- 如何识别此 table 中的行?
是的,你的数据结构看起来不太好。而不是一条记录:
time Bicycles Shovels Hats Candles Sales
01/01/2019 12 6 2 4 24
用不同的 item
标签保存多条记录(sales 是 int 字段):
time item sales
01/01/2019 Bicycles 12
01/01/2019 Shovels 6
01/01/2019 Hats 2
01/01/2019 Candles 4
然后group by time AND item
tag + SPREAD函数可以用来去除子查询,例如
SELECT time, SPREAD(sales)
FROM "autogen"."Paid_Orders"
WHERE $timeFilter
GROUP BY time(1d), "item" fill(none)
我在 InfluxDB 中有一些销售数据,基本上每 10 秒我记录一次来自 SQL 的销售总数,然后将其分解为字段中不同项目的销售。 所以一行可能看起来像:
time Bicycles Shovels Hats Candles Sales
01/01/2019 12 6 2 4 24
02/01/2019 14 9 3 5 31
(这是这个问题的虚拟数据,并没有反映图像中的数字,这些数字来自我一直在使用实际数据进行的生产测试)
需要强调的是,这是累积的,每个条目都随着销售数量的增长而增长。
然后我可以使用 Grafana 按时间 (1d) 显示差异 (max(sales)) 以显示总销售额(在这种情况下为每天)
我还想做的是在 table 中显示每个组(天)的最大销售额,创纪录的销售额 table,我们过去的表现如何。
所以我在 Grafana 中有 3 个查询:
SELECT time, max(difference) FROM (
SELECT difference(max("Sales"))
FROM "autogen"."Paid_Orders"
WHERE $timeFilter
GROUP BY time(1d) fill(none)
)
在后续查询中将 "sales" 换成自行车和帽子(无论什么),我最终得到一个 table,看起来像:
问题是我不知道哪一行是哪个字段。通常(在 SQL 中)我会做一些类似 SELECT 'Sales' 作为类型等的事情......添加一个包含 "Sales" 的列。但我无法将其视为 Grafana 或 Influx 中的一个选项。
- 我记录的数据有误吗?我可以为此利用标签吗?
- 如何识别此 table 中的行?
是的,你的数据结构看起来不太好。而不是一条记录:
time Bicycles Shovels Hats Candles Sales
01/01/2019 12 6 2 4 24
用不同的 item
标签保存多条记录(sales 是 int 字段):
time item sales
01/01/2019 Bicycles 12
01/01/2019 Shovels 6
01/01/2019 Hats 2
01/01/2019 Candles 4
然后group by time AND item
tag + SPREAD函数可以用来去除子查询,例如
SELECT time, SPREAD(sales)
FROM "autogen"."Paid_Orders"
WHERE $timeFilter
GROUP BY time(1d), "item" fill(none)