文档文档

数据写入问题排查

了解如何在写入 InfluxDB 3 Core 时避免意外结果并从错误中恢复。

处理写入响应

当您发送写入请求时,InfluxDB 3 Core 会执行以下操作

  1. 验证请求。

  2. 如果成功,则尝试从请求正文中提取数据;否则,使用 错误状态 响应。

  3. 提取或拒绝批处理中的数据,并返回以下 HTTP 状态代码之一

    • 204 No Content:批处理中的所有数据均已提取。
    • 400 Bad Request:部分或全部数据已被拒绝。未被拒绝的数据将被提取并可查询。

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

写入是同步的——响应状态指示写入的最终状态,并且所有提取的数据均可查询。

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

查看 HTTP 状态代码

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

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

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

排查故障

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

  • 检查响应正文中的 message 属性,以获取有关错误的详细信息。
  • 如果 message 描述字段错误,请排查拒绝点
  • 验证所有行都包含有效的语法(Line Protocol)。
  • 验证数据中的时间戳是否与请求中的 精度参数 匹配。
  • 通过优化写入,最大限度地减少有效负载大小和网络错误。

排查拒绝点

InfluxDB 拒绝与现有数据模式不匹配的点。

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


此页内容是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

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

有关更多信息,请查看