首页 > 解决方案 > 在 InfluxDB 中使用 cURL 从文件写入时丢失数据点

问题描述

我试图通过执行命令按照本文档将数据插入 InfluxDB 数据库curl -i -XPOST 'http://localhost:8086/write?db=myDB' --data-binary @data.txt。其中data.txt是一个包含 50 多个点的文件。

输出:

HTTP/1.1 100 Continue

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: 93487c9c-a1a8-11ea-80bd-9829a645199e
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.8.0
X-Request-Id: 93487c9c-a1a8-11ea-80bd-9829a645199e
Date: Fri, 29 May 2020 12:33:18 GMT

我只能写 50 分myDB,我认为这是由于HTTP/1.1 100 Continue. 经过一番谷歌搜索,我找到了这篇文章,并按照我修改并执行了上面的命令,比如curl -H 'Expect:' -i -XPOST 'http://localhost:8086/write?db=myDB' --data-binary @data.txt

输出:

HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: 54b34ebd-a1bc-11ea-80ca-9829a645199e
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.8.0
X-Request-Id: 54b34ebd-a1bc-11ea-80ca-9829a645199e
Date: Fri, 29 May 2020 14:54:43 GMT

我成功绕过了HTTP/1.1 100 Continue,但我仍然只写了 50 分myDB

我是InfluxDBcURL的绝对菜鸟

标签: databasehttpcurlinfluxdb

解决方案


最近我发现了这个问题。问题在于data.txt文件的内容。我正在编写没有 a 的每个数据点timestamp,因此所有测量值都分配有相同的timestamp.

例如,

temperature,tag=computer node="cpu",value=38
temperature,tag=computer node="gpu",value=45
temperature,tag=computer node="ram",value=40

data.txt如果我在没有InfluxDB的文件中有上述三个测量值,timestamp则只会接受最终值(覆盖以前的值,因为所有值都相同timestamp)。

由于我对此不熟悉,因此我不了解 InfluxDB 的所有属性。


推荐阅读