文档文档

将 InfluxDB v2 API 与 InfluxDB Clustered 结合使用

将 InfluxDB v2 API /api/v2/write 端点用于新的写入工作负载以及您带到 InfluxDB Clustered 的现有 v2 写入工作负载。 了解如何验证请求、调整现有 v2 工作负载的请求参数,以及查找兼容的工具来写入和查询存储在 InfluxDB Clustered 数据库中的数据。

如需帮助为您的具体情况找到最佳工作流程,请联系支持团队

验证 API 请求

InfluxDB API 端点要求每个请求都使用数据库令牌进行身份验证。

使用令牌进行身份验证

使用 Authorization: Bearer 方案或 Authorization: Token 方案传递具有执行操作所需权限的数据库令牌

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

语法

Authorization: Bearer DATABASE_TOKEN
Authorization: Token DATABASE_TOKEN

示例

使用 Bearer 验证写入请求

curl --request post 'https://cluster-host.com/api/v2/write?bucket=
DATABASE_NAME
&precision=s'
\
--header 'Authorization: Bearer
DATABASE_TOKEN
'
\
--data-binary 'home,room=kitchen temp=72 1641024000'

使用 Token 验证写入请求

curl --request post "https://cluster-host.com/api/v2/write?bucket=
DATABASE_NAME
&precision=s"
\
--header "Authorization: Token
DATABASE_TOKEN
"
\
--data-binary 'home,room=kitchen temp=72 1641024000'

替换以下内容

  • DATABASE_NAME:您的 InfluxDB Clustered 数据库
  • DATABASE_TOKEN:具有足够权限访问指定数据库的数据库令牌

响应

InfluxDB API 响应使用标准 HTTP 状态代码。 对于成功的写入,InfluxDB 响应 204 No Content 状态代码。 错误响应包含一个 JSON 对象,其中包含描述错误的 codemessage 属性。 跨 InfluxDB Clustered v1 API、v2 API、InfluxDB Cloud 和 InfluxDB OSS,响应正文消息可能有所不同。

错误示例

  • 缺少 bucket 值

    400 Bad Request
    
    { "code": "invalid",
      "message":"missing bucket value"
    }
    

    请求中缺少 ?bucket= 参数值。 提供数据库名称。

  • 反序列化 org/bucket/precision 失败

    400 Bad Request
    
    { "code":"invalid",
      "message":"failed to deserialize org/bucket/precision in request: unknown variant `u`, expected one of `s`, `ms`, `us`, `ns`"
    }
    

    ?precision= 参数包含未知值。 提供时间戳精度

写入数据

我们建议将 InfluxDB v2 API /api/v2/write 端点用于新的写入工作负载和现有的 v2 工作负载。

POST https://cluster-host.com/api/v2/write

/api/v2/write 参数

对于 InfluxDB Clustered v2 API /api/v2/write 请求,请按照下表列出的参数进行设置

参数允许在已忽略
org查询字符串已忽略非零长度字符串(已忽略,但不能为空)
orgID查询字符串已忽略不适用
bucket *查询字符串已接受数据库名称
precision查询字符串已接受时间戳精度
接受标头已接受用户定义
Authorization *标头已接受Bearer DATABASE_TOKENToken DATABASE_TOKEN
Content-Encoding标头已接受gzip(压缩数据)或 identity(未压缩)
Content-Length标头已接受用户定义
Content-Type标头已忽略不适用(仅支持 Line Protocol)
Zap-Trace-Span标头已忽略
* = 必需

时间戳精度

在 v2 API /api/v2/write 请求中使用以下 precision 值之一

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

用于写入 v2 API 的工具

以下工具可与 InfluxDB Clustered /api/v2/write 端点配合使用

Telegraf

请参阅如何配置 Telegraf 以写入 InfluxDB Clustered。

交互式客户端

要交互式测试 InfluxDB v2 API 写入,请使用 influx3 数据 CLI 或常见的 HTTP 客户端(例如 cURL 和 Postman)。

要设置并开始使用交互式客户端,请参阅开始使用教程。

不支持 influx CLI

请勿将 influx CLI 与 InfluxDB Clustered 一起使用。 虽然它可能碰巧可以工作,但官方不支持。

客户端库

InfluxDB v3 客户端库v2 客户端库可以将数据写入 InfluxDB v2 API /api/v2/write 端点。 客户端库是特定于语言的软件包,可将 InfluxDB API 与您的应用程序集成。

要设置并开始使用客户端库,请参阅开始使用教程。

查询数据

InfluxDB Clustered 提供以下协议来执行查询

  • 包含 SQL 或 InfluxQL 查询的 Flight+gRPC 请求。 要了解如何使用 Flight 和 SQL 查询 InfluxDB Clustered,请参阅开始使用教程。
  • 包含 InfluxQL 查询的 InfluxDB v1 API /query 请求。

用于执行查询的工具

InfluxDB Clustered 支持许多不同的工具来查询数据,包括

不支持 /api/v2/query

InfluxDB API /api/v2/query 端点无法查询 InfluxDB 集群。 InfluxDB Clustered 中不支持 /api/v2/query API 端点以及关联的工具,例如 influx CLI 和 InfluxDB v2 客户端库。


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版现已公开发布 Alpha 版本

InfluxDB 3 开源版现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们的新开源产品。 它是用于时间序列和事件数据的最新数据引擎。 InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何入门的更多信息,请查看