从 Influxdb 中选择多个 values/aggregators,不包括时间
Selecting multiple values/aggregators from Influxdb, excluding time
我得到了一个由
组成的流入数据库 table
> SELECT * FROM results
name: results
time artnum duration
---- ------ --------
1539084104865933709 1234 34
1539084151822395648 1234 81
1539084449707598963 2345 56
1539084449707598123 2345 52
和其他标签。 artnum
和 duration
都是字段(虽然可以更改)。我现在正在尝试创建一个查询(在 grafana 中使用),该查询使用计算得出的 mean()
和该 artnum
:
的测量次数为我提供以下结果
artnum mean_duration no. measurements
------ -------- -----
1234 58 2
2345 54 2
首先:是否可以排除time
列?其次,创建这样一个 table 的 influx db 方法是什么?我从
开始
SELECT mean("duration"), "artnum" FROM "results"
导致 ERR: mixing aggregate and non-aggregate queries is not supported
。然后我找到了https://docs.influxdata.com/influxdb/v1.6/guides/downsampling_and_retention/,这看起来像我想做的。然后我创建了一个无限保留策略(持续时间 0s)和一个连续查询
> CREATE CONTINUOUS QUERY "cq" ON "test" BEGIN
SELECT mean("duration"),"artnum"
INTO infinite.mean_duration
FROM infinite.test
GROUP BY time(1m)
END
我按照说明操作,但是在我将一些数据输入数据库并等待 1 分钟后,`SELECT * FROM "infinite"."mean_duration" 没有 return任何东西。
这种方法是正确的还是我应该继续其他地方?目标是在grafana中看到更新的table,一分钟刷新一次。
InfluxDB 是一个time 系列数据库,因此您确实需要时间维度——也在响应中。如果您查询 returns 非时间序列数据,您将很难使用 Grafana。所以不要试图从查询中删除 time
。更好的选择是在 Grafana table 面板中隐藏时间 - 使用 column styles 并设置 Type: Hidden
.
InfluxDB 没有 tables,但有测量值。我想您只需要使用适当的 grouping 进行查询,不需要提前连续查询等。尝试改进此查询*:
SELECT
MEAN("duration"),
COUNT("duration")
FROM results
GROUP BY "artnum" fill(null)
*你的情况下分组可能有问题,因为 artnum
是 InfluxDB field
- 更好的选择是将 artnum
保存为 InfluxDB tag
.
我得到了一个由
组成的流入数据库 table> SELECT * FROM results
name: results
time artnum duration
---- ------ --------
1539084104865933709 1234 34
1539084151822395648 1234 81
1539084449707598963 2345 56
1539084449707598123 2345 52
和其他标签。 artnum
和 duration
都是字段(虽然可以更改)。我现在正在尝试创建一个查询(在 grafana 中使用),该查询使用计算得出的 mean()
和该 artnum
:
artnum mean_duration no. measurements
------ -------- -----
1234 58 2
2345 54 2
首先:是否可以排除time
列?其次,创建这样一个 table 的 influx db 方法是什么?我从
SELECT mean("duration"), "artnum" FROM "results"
导致 ERR: mixing aggregate and non-aggregate queries is not supported
。然后我找到了https://docs.influxdata.com/influxdb/v1.6/guides/downsampling_and_retention/,这看起来像我想做的。然后我创建了一个无限保留策略(持续时间 0s)和一个连续查询
> CREATE CONTINUOUS QUERY "cq" ON "test" BEGIN
SELECT mean("duration"),"artnum"
INTO infinite.mean_duration
FROM infinite.test
GROUP BY time(1m)
END
我按照说明操作,但是在我将一些数据输入数据库并等待 1 分钟后,`SELECT * FROM "infinite"."mean_duration" 没有 return任何东西。
这种方法是正确的还是我应该继续其他地方?目标是在grafana中看到更新的table,一分钟刷新一次。
InfluxDB 是一个time 系列数据库,因此您确实需要时间维度——也在响应中。如果您查询 returns 非时间序列数据,您将很难使用 Grafana。所以不要试图从查询中删除 time
。更好的选择是在 Grafana table 面板中隐藏时间 - 使用 column styles 并设置 Type: Hidden
.
InfluxDB 没有 tables,但有测量值。我想您只需要使用适当的 grouping 进行查询,不需要提前连续查询等。尝试改进此查询*:
SELECT
MEAN("duration"),
COUNT("duration")
FROM results
GROUP BY "artnum" fill(null)
*你的情况下分组可能有问题,因为 artnum
是 InfluxDB field
- 更好的选择是将 artnum
保存为 InfluxDB tag
.