文档文档

使用 InfluxDB v1 HTTP 查询 API 和 InfluxQL 查询数据

使用 InfluxDB v1 HTTP 查询 API 和 InfluxQL 在 InfluxDB 3 Core 中查询数据。

以下示例使用 cURL 向 InfluxDB v1 HTTP API 发送 HTTP 请求,但您可以使用任何 HTTP 客户端。

InfluxQL 功能支持

InfluxQL 正在进行重构,以适应 InfluxDB 3 存储引擎。此过程正在进行中,某些 InfluxQL 功能仍在实现中。有关 InfluxQL 功能当前实现状态的信息,请参阅 InfluxQL 功能支持

使用 v1 /query 端点和 GET 请求方法使用 InfluxQL 查询数据

GET https://:8181/query

身份验证 API 请求

InfluxDB 3 Core 要求每个 API 请求都使用 令牌 进行身份验证。对于 InfluxDB 3 中与 InfluxDB v1 兼容的端点,您可以使用 InfluxDB 1.x 用户名和密码方案中的数据库令牌、InfluxDB v2 Authorization: Token 方案中的令牌,或者 OAuth Authorization: Bearer 方案中的令牌。

使用用户名和密码方案进行身份验证

对于 InfluxDB 3 中与 InfluxDB v1 兼容的端点,您可以使用 InfluxDB 1.x 的用户名和密码约定,通过将 令牌 作为 password 凭据来验证数据库读取。在向 v1 API /query 端点进行身份验证的请求时,InfluxDB 3 Core 会检查 password (p) 值是否为已授权的 令牌。InfluxDB 3 Core 会忽略请求中的 username (u) 参数。

对于支持基本身份验证或查询参数的客户端,使用以下身份验证方案之一

Basic 身份验证

使用 Authorization 标头和 Basic 方案来验证 v1 API /query 请求。在验证请求时,InfluxDB 3 Core 会检查解码凭据的 password 部分是否为已授权的 令牌。InfluxDB 3 Core 会忽略解码凭据的 username 部分。

语法
Authorization: Basic <base64-encoded [USERNAME]:DATABASE_TOKEN>

使用 base64 编码 [USERNAME]:DATABASE_TOKEN 凭据,然后将编码后的字符串附加到 Authorization: Basic 标头。

示例

以下示例显示了如何将 cURL 与 Basic 身份验证方案结合使用

curl --get "https://:8181/query" \
  --user "any:
DATABASE_TOKEN
"
\
--data-urlencode "db=
DATABASE_NAME
"
\
--data-urlencode "q=SELECT * FROM home"

查询字符串身份验证

在 URL 中,传递 p 查询参数以验证 /query 请求。在验证请求时,InfluxDB 3 Core 会检查 p (password) 值是否为已授权的 令牌,并忽略 u (username) 参数。

语法
https://:8181/query/?u=any&p=DATABASE_TOKEN
示例

以下示例显示了如何将 cURL 与查询字符串身份验证结合使用

curl --get "https://:8181/query" \
  --data-urlencode "p=
DATABASE_TOKEN
"
\
--data-urlencode "db=
DATABASE_NAME
"
\
--data-urlencode "q=SELECT * FROM home"

使用令牌方案进行身份验证

使用 Authorization: BearerAuthorization: Token 方案来传递 令牌,以验证 v1 API /query 请求。

在 InfluxDB 3 Core 中,BearerToken 是等效的。Token 方案用于 InfluxDB 2.x API。BearerOAuth 2.0 框架 定义。对其中一个的支持可能因 InfluxDB API 客户端而异。

语法

Authorization: Bearer DATABASE_TOKEN
Authorization: Token DATABASE_TOKEN

示例

使用 Bearer 验证查询请求

curl --get "https://:8181/query" \
  --header "Authorization: Bearer 
DATABASE_TOKEN
"
\
--data-urlencode "db=
DATABASE_NAME
"
\
--data-urlencode "q=SELECT * FROM home"

使用 Token 验证查询请求

curl --get "https://:8181/query" \
  --header "Authorization: Token 
DATABASE_TOKEN
"
\
--data-urlencode "db=
DATABASE_NAME
"
\
--data-urlencode "q=SELECT * FROM home"

查询参数

对于 InfluxDB 3 Core v1 API /query 请求,请设置以下表中列出的参数

参数允许在已忽略Value
chunked查询字符串已遵守将点以流式批处理的形式返回,而不是以单个响应的形式返回。如果设置为 true,InfluxDB 将按系列或每 10,000 个点进行分块响应,以先发生的为准。
chunked_size查询字符串已遵守要求 chunked 设置为 true。如果设置为特定值,InfluxDB 将按系列或此数量的点进行分块响应。
db *查询字符串已遵守数据库名称
epoch查询字符串已遵守时间戳精度
p查询字符串已遵守对于 查询字符串身份验证令牌
pretty查询字符串已忽略N/A
q *查询字符串已遵守URL 编码的 InfluxQL 查询
rp查询字符串已遵守,但不推荐Retention policy
u查询字符串已忽略对于 查询字符串身份验证,任意字符串
AuthorizationHeader已遵守Bearer DATABASE_TOKEN, Token DATABASE_TOKEN, 或 Basic <base64 [USERNAME]:DATABASE_TOKEN>
* = 必需

时间戳精度

使用以下值之一表示时间戳精度

  • ns: 纳秒
  • us: 微秒
  • ms: 毫秒
  • s: 秒
  • m: 分钟
  • h: 小时

替换以下配置值

  • DATABASE_NAME: 要查询的 数据库 的名称
  • DATABASE_TOKEN: 您的 InfluxDB 3 Core 令牌

将结果返回为 JSON 或 CSV

默认情况下,/query 端点返回 JSON 格式的结果,但也可以返回 CSV 格式的结果。要将结果返回为 CSV,请包含 Accept 标头,并指定 application/csvtext/csv MIME 类型

curl --get https://:8181/query \
  --header "Authorization: Bearer 
DATABASE_TOKEN
"
\
--header "Accept: application/csv" \ --data-urlencode "db=
DATABASE_NAME
"
\
--data-urlencode "q=SELECT * FROM home"

此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2