文档文档

解决写入数据问题时

了解如何避免意外结果并在将数据写入 InfluxDB 集群时从错误中恢复。

处理写入响应

当您发送写入请求时,InfluxDB 集群执行以下操作

  1. 验证请求。

  2. 如果成功,尝试从请求体中摄取数据;否则,返回一个错误状态

  3. 批量摄取或拒绝数据,并返回以下 HTTP 状态码之一

    • 204 No Content:批量中的所有数据都已摄取。
    • 400 Bad Request:部分或全部数据已被拒绝。未拒绝的数据已被摄取并可查询。

响应体包含有关拒绝的数据点的错误详细信息,最多 100 个点。

写入是同步的–响应状态指示写入的最终状态,所有摄取的数据都可查询。

为确保 InfluxDB 按您请求的顺序处理写入,在发送下一个请求之前请等待响应。

审查 HTTP 状态码

InfluxDB 使用传统的 HTTP 状态码来指示请求的成功或失败。响应体的 message 属性可能包含有关错误的详细信息。写入请求返回以下状态码:

HTTP 响应码消息描述
204 "成功"如果 InfluxDB 已摄取数据
400 "无效请求"拒绝的数据点错误详情,最多100个点:line 包含第一个拒绝的行,message 描述拒绝原因如果某些或全部请求数据不允许(例如,如果其格式不正确或超出桶的保留期)——响应体指示是否发生了部分写入或所有数据已被拒绝
401 "未经授权"如果缺少或格式不正确的 Authorization 标头,或者如果 令牌 没有写入数据库的 权限。请参阅写入请求中使用的 凭据示例
404 "未找到"请求的 资源类型(例如,“组织”或“数据库”),和 资源名称如果请求的资源(例如,组织或数据库)未找到
500 "内部服务器错误"错误的默认状态
503 “服务不可用”如果服务器暂时不可用以接受写入。 Retry-After 标头描述了何时再次尝试写入。

如果您的数据未写入数据库,请参阅如何 调试拒绝的点

解决失败问题

如果您注意到数据库中缺少数据,请执行以下操作

  • 检查响应体中的 message 属性以获取关于错误的详细信息。
  • 如果 message 描述了字段错误,请 调试拒绝的点
  • 验证所有行都包含有效的语法(行协议)。
  • 验证数据中的时间戳与请求中的 精度参数 相匹配。
  • 通过 优化写入 来最小化有效负载大小和网络错误。

解决拒绝的数据点问题

InfluxDB 拒绝与现有桶数据位于同一分区(默认分区是按测量和日期进行)且现有字段的类型不同的点。

检查拒绝的数据点与同一数据库和分区内的点之间的 字段数据类型 差异——例如,您是否尝试将 string 数据写入 int 字段?


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 正进入维护模式。您可以在不更改代码的情况下继续像目前一样使用它。

了解更多

InfluxDB v3 的增强功能和 InfluxDB 集群现在已普遍可用

包括更快的查询性能和管理工具的新功能推动了 InfluxDB v3 产品线的发展。InfluxDB 集群现在已普遍可用。

InfluxDB v3 的性能和功能

InfluxDB v3 产品线在查询性能方面有了显著的提升,并提供了新的管理工具。这些增强包括一个操作仪表板来监控您 InfluxDB 集群的健康状况,InfluxDB Cloud Dedicated 中的单点登录(SSO)支持,以及用于令牌和数据库的新管理 API。

了解新 v3 增强功能


InfluxDB 集群普遍可用

InfluxDB 集群现在已普遍可用,并为您在自行管理的堆栈中提供了 InfluxDB v3 的功能。

与我们谈谈 InfluxDB 集群