目录
一、HTTP查询示例
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west'"
- HTTP接口是InfluxDB查询数据的主要方式。
- GET请求到
http://localhost:8086/query
路径 db=mydb
选择数据库q=SELECT "value" FROM "cpu_load_short" WHERE "region"='us-west'
查询语句- 查询value字段
- 从cpu_load_showt表
- 条件 region=‘us-west’
二、基础SELECT查询
SELECT <field_key>[,<field_key>,<tag_key>] FROM <measurement_name>[,<measurement_name>]
2.1 返回所有的field和tag
SLECT *
2.2返回多个field和tag
SELECT "<field_key>","<field_key>"
2.3 从单个measurement返回数据
FROM <measurement_name>
2.4 从多个measurement中返回数据
FROM <measurement_name>,<measurement_name>
2.5 从一个完全指定的measurement中返回数据
这个完全指定是指指定了数据库和存储策略。
FROM <database_name>.<retention_policy_name>.<measurement_name>
2.6 从一个用户指定的数据库中返回存储策略为DEFAULT的数据。
FROM <database_name>..<measurement_name>
三、条件SELECT查询
SELECT_clause FROM_clause WHERE <conditional_expression> [(AND|OR) <conditional_expression> [...]]
3.1 查询有特定field的key value的数据
> SELECT * FROM "h2o_feet" WHERE "water_level" > 8
name: h2o_feet
--------------
time level description location water_level
2015-08-18T00:00:00Z between 6 and 9 feet coyote_creek 8.12
2015-08-18T00:06:00Z between 6 and 9 feet coyote_creek 8.005
[...]
2015-09-18T00:12:00Z between 6 and 9 feet coyote_creek 8.189
2015-09-18T00:18:00Z between 6 and 9 feet coyote_creek 8.084
3.2 根据时间戳来过滤数据
该查询返回来自h2o_feet,该measurement在过去七天内的数据。
> SELECT * FROM "h2o_feet" WHERE time > now() - 7d
四、升降序ORDER BY TIME DESC
- 默认情况下,InfluxDB以升序的顺序返回结果; 返回的第一个点具有最早的时间戳
- ORDER BY time DESC反转该顺序,使得InfluxDB首先返回具有最新时间戳的点
五、LIMIT
LIMIT <N>
从指定的measurement中返回前N个数据点。- 如果N大于measurement的点总数,InfluxDB返回该measurement中的所有点
> SELECT "water_level","location" FROM "h2o_feet" LIMIT 3
name: h2o_feet
time water_level location
---- ----------- --------
2015-08-18T00:00:00Z 8.12 coyote_creek
2015-08-18T00:00:00Z 2.064 santa_monica
2015-08-18T00:06:00Z 8.005 coyote_creek
六、OFFSET
OFFSET <N>
从查询结果中返回分页的N个数据点- 查询结果从第N个数据点开始
七、LIMIT N OFFSET M
- 查询结果从第M个数据点开始的后N个数据点