使用 InfluxDB API 查询数据
此页面记录了早期版本的 InfluxDB OSS。InfluxDB OSS v2 是最新的稳定版本。请参阅等效的 InfluxDB v2 文档: 在 InfluxDB 中查询数据。
InfluxDB API 是在 InfluxDB 中查询数据的主要方式(有关查询数据库的其他方法,请参阅命令行界面和客户端库)。
使用 InfluxDB API 和 Flux 或 InfluxQL 查询数据。
注意:以下示例使用
curl
,这是一个使用 URL 传输数据的命令行工具。通过 HTTP 脚本指南 了解curl
的基础知识。
使用 Flux 查询数据
对于 Flux 查询,/api/v2/query
端点接受 POST
HTTP 请求。使用以下 HTTP 标头
Accept: application/csv
Content-type: application/vnd.flux
如果启用了身份验证,请使用 Authorization
标头和 Token
模式提供您的 InfluxDB 用户名和密码。例如:Authorization: Token username:password
。
以下示例使用 Flux 查询 Telegraf 数据:
$ curl -XPOST localhost:8086/api/v2/query -sS \
-H 'Accept:application/csv' \
-H 'Content-type:application/vnd.flux' \
-d 'from(bucket:"telegraf")
|> range(start:-5m)
|> filter(fn:(r) => r._measurement == "cpu")'
Flux 返回 带注释的 CSV
{,result,table,_start,_stop,_time,_value,_field,_measurement,cpu,host
,_result,0,2020-04-07T18:02:54.924273Z,2020-04-07T19:02:54.924273Z,2020-04-07T18:08:19Z,4.152553004641827,usage_user,cpu,cpu-total,host1
,_result,0,2020-04-07T18:02:54.924273Z,2020-04-07T19:02:54.924273Z,2020-04-07T18:08:29Z,7.608695652173913,usage_user,cpu,cpu-total,host1
,_result,0,2020-04-07T18:02:54.924273Z,2020-04-07T19:02:54.924273Z,2020-04-07T18:08:39Z,2.9363988504310883,usage_user,cpu,cpu-total,host1
,_result,0,2020-04-07T18:02:54.924273Z,2020-04-07T19:02:54.924273Z,2020-04-07T18:08:49Z,6.915093159934975,usage_user,cpu,cpu-total,host1}
标题行定义了表的列标签。cpu
measurement(指标) 有四个点,每个点由记录行之一表示。例如,第一个点的 timestamp(时间戳) 为 2020-04-07T18:08:19
。
Flux
查看 Flux 入门,了解有关使用 Flux 构建查询的更多信息。有关使用 InfluxDB API 和 Flux 查询数据的更多信息,请参阅 API 参考文档。
使用 InfluxQL 查询数据
要执行 InfluxQL 查询,请向 /query
端点发送 GET
请求,将 URL 参数 db
设置为目标数据库,并将 URL 参数 q
设置为您的查询。您也可以使用 POST
请求,方法是将相同的参数作为 URL 参数或作为带有 application/x-www-form-urlencoded
的正文的一部分发送。以下示例使用 InfluxDB API 查询您在 写入数据 中遇到的同一数据库。
curl -G 'https://127.0.0.1:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT \"value\" FROM \"cpu_load_short\" WHERE \"region\"='us-west'"
InfluxDB 返回 JSON
{
"results": [
{
"statement_id": 0,
"series": [
{
"name": "cpu_load_short",
"columns": [
"time",
"value"
],
"values": [
[
"2015-01-29T21:55:43.702900257Z",
2
],
[
"2015-01-29T21:55:43.702900257Z",
0.55
],
[
"2015-06-11T20:46:02Z",
0.64
]
]
}
]
}
]
}
注意: 将
pretty=true
附加到 URL 可以启用格式良好的 JSON 输出。虽然这对于调试或直接使用curl
等工具进行查询非常有用,但不建议在生产环境中使用,因为它会消耗不必要的网络带宽。
InfluxQL
查看 数据探索页面,以熟悉 InfluxQL。有关使用 InfluxDB API 和 InfluxQL 查询数据的更多信息,请参阅 API 参考文档。
此页对您有帮助吗?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度合同或支持合同的客户 可以联系 InfluxData 支持。