文档文档

使用 InfluxDB API 查询数据

此页面记录了 InfluxDB OSS 的早期版本。 InfluxDB OSS v2 是最新的稳定版本。 请参阅等效的 InfluxDB v2 文档: 在 InfluxDB 中查询数据

InfluxDB API 是在 InfluxDB 中查询数据的主要方式(有关查询数据库的其他方法,请参阅命令行界面客户端库)。

使用 FluxInfluxQL 通过 InfluxDB API 查询数据。

注意:以下示例使用 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 有四个点,每个点由记录行之一表示。例如,第一个点的 timestamp2020-04-07T18:08:19

Flux

查看 Flux 入门 以了解有关使用 Flux 构建查询的更多信息。有关使用 Flux 通过 InfluxDB API 查询数据的更多信息,请参阅API 参考文档

使用 InfluxQL 查询数据

要执行 InfluxQL 查询,请向 /query 端点发送 GET 请求,将 URL 参数 db 设置为目标数据库,并将 URL 参数 q 设置为您的查询。您还可以使用 POST 请求,方法是将相同的参数作为 URL 参数或作为正文的一部分与 application/x-www-form-urlencoded 一起发送。以下示例使用 InfluxDB API 查询您在 写入数据 中遇到的同一数据库。

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'"

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。有关使用 InfluxQL 通过 InfluxDB API 查询数据的更多信息,请参阅API 参考文档


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在一样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最近数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 以 Core 的基础为构建,增加了高可用性、只读副本、增强的安全性以及数据压缩,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看