0%

influxQL

InfluxQL是一种类似于SQL的查询语言,用于与InfluxDB进行交互。它经过精心设计,可以使来自其他SQL或类似SQL环境的用户熟悉,同时还提供特定于存储和分析时间序列数据的功能。

InfluxQL的SELECT语句遵循SQL SELECT语句的形式:

SELECT <stuff> FROM <measurement_name> WHERE <some_conditions>

WHERE是可选的。

要在上面的部分中获取InfluxDB输出,请输入:

SELECT * FROM "foodships"

如果您只想查看有关该行的数据Saturn,请输入:

SELECT * FROM "foodships" WHERE "planet" = 'Saturn'

如果您想Saturn在2015年4月16日世界标准时间12:00:01之后查看行星的数据,请输入:

SELECT * FROM "foodships" WHERE "planet" = 'Saturn' AND time > '2015-04-16 12:00:01'

如上面的示例所示,InfluxQL允许您在WHERE子句中指定查询的时间范围。您可以使用日期时间字符串,这些日期时间字符串用单引号引起来,其格式为YYYY-MM-DD HH:MM:SS.mmm (mmm是毫秒,是可选的,还可以指定微秒或纳秒)。您还可以使用相对时间now()来引用服务器的当前时间戳:

SELECT * FROM "foodships" WHERE time > now() - 1h

该查询foodships以时间戳记比服务器当前时间减去一小时新的量度输出数据。用于指定持续时间的选项now()有:

格式 单位
ns 纳秒
u或µ 微秒
ms 毫秒
s
m 分钟
H 小时
d
w
  • InfluxQL还支持正则表达式,表达式,SHOW语句和GROUP BY语句中的算术运算。

  • InfluxQL功能包括COUNTMINMAXMEDIANDERIVATIVE等等。

  • 查询中的基本计算

SELECT声明支持使用基本数学运算符,如+,-,/,*,(),等。

-- Add two field keys
SELECT field_key1 + field_key2 AS "field_key_sum" FROM "measurement_name" WHERE time < now() - 15m

-- Subtract one field from another
SELECT field_key1 - field_key2 AS "field_key_difference" FROM "measurement_name" WHERE time < now() - 15m

-- Grouping and chaining mathematical calculations
SELECT (field_key1 + field_key2) - (field_key3 + field_key4) AS "some_calculation" FROM "measurement_name" WHERE time < now() - 15m
  • 计算查询中的百分比

使用基本的数学函数,您可以通过将一个字段值除以另一字段值并将结果乘以100来计算百分比:

SELECT (field_key1 / field_key2) * 100 AS "calculated_percentage" FROM "measurement_name" WHERE time < now() - 15m
  • 使用聚合函数计算百分比

如果在百分比计算中使用汇总函数,则必须使用汇总函数引用所有数据。 您不能混合使用汇总数据和非汇总数据。

所有聚合功能都需要一个GROUP BY time()子句,该子句定义将数据点分组和聚合的时间间隔。

SELECT (sum(field_key1) / sum(field_key2)) * 100 AS "calculated_percentage" FROM "measurement_name" WHERE time < now() - 15m GROUP BY time(1m)