文档

使用 InfluxDB API 写入数据

使用 HTTP 请求到 InfluxDB API 的 /api/v2/write 端点将数据写入 InfluxDB。使用 POST 请求方法并在请求中包含以下内容

要求包含方式
组织使用请求 URL 中的 org 查询参数。
存储桶使用请求 URL 中的 bucket 查询参数。
时间戳精度使用请求 URL 中的 precision 查询参数。默认为 ns
API 令牌使用 Authorization: Token YOUR_API_TOKEN 标头。
行协议在请求体中以纯文本形式传递。

发送写入请求

示例中的 URL 依赖于您的 InfluxDB 实例的版本和位置。 2.7 自定义示例中的 URL

curl --request POST \
"https://127.0.0.1:8086/api/v2/write?org=YOUR_ORG&bucket=YOUR_BUCKET&precision=ns" \
  --header "Authorization: Token YOUR_API_TOKEN" \
  --header "Content-Type: text/plain; charset=utf-8" \
  --header "Accept: application/json" \
  --data-binary '
    airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 1630424257000000000
    airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 1630424257000000000
    '
'use strict'
/** @module write
 * Writes a data point to InfluxDB using the Javascript client library with Node.js.
**/

import { InfluxDB, Point } from '@influxdata/influxdb-client'

/** Environment variables **/
const url = process.env.INFLUX_URL
const token = process.env.INFLUX_TOKEN
const org = process.env.INFLUX_ORG
const bucket = process.env.INFLUX_BUCKET

/**
 * Instantiate the InfluxDB client
 * with a configuration object.
 **/
const influxDB = new InfluxDB({ url, token })

/**
 * Create a write client from the getWriteApi method.
 * Provide your `org` and `bucket`.
 **/
const writeApi = influxDB.getWriteApi(org, bucket)

/**
 * Apply default tags to all points.
 **/
writeApi.useDefaultTags({ region: 'west' })

/**
 * Create a point and write it to the buffer.
 **/
const point1 = new Point('temperature')
  .tag('sensor_id', 'TLM01')
  .floatField('value', 24.0)
console.log(` ${point1}`)

writeApi.writePoint(point1)

/**
 * Flush pending writes and close writeApi.
 **/
writeApi.close().then(() => {
  console.log('WRITE FINISHED')
})
使用 InfluxDB API 进行 gzip 压缩

当使用 InfluxDB API 的 /api/v2/write 端点写入数据时,使用 gzip 压缩数据,并将 Content-Encoding 头设置为 gzip。压缩可以减少网络带宽,但会增加服务器端的负载。

echo "airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 1630525358 
  airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 1630525358" | gzip > air-sensors.gzip

curl --request POST \
"https://127.0.0.1:8086/api/v2/write?org=YOUR_ORG&bucket=YOUR_BUCKET&precision=ns" \
  --header "Authorization: Token YOUR_API_TOKEN" \
  --header "Content-Encoding: gzip" \
  --header "Content-Type: text/plain; charset=utf-8" \
  --header "Accept: application/json" \
  --data-binary @air-sensors.gzip

有关 InfluxDB API 响应代码 的信息,请参阅 InfluxDB API 写入文档


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 正在进入维护模式。您可以在不更改代码的情况下继续按照当前的方式使用它。

阅读更多

InfluxDB v3 增强功能和 InfluxDB 集群版现已上市

新功能包括更快的查询性能和管理工具,推进了 InfluxDB v3 产品线。InfluxDB 集群版现已上市。

InfluxDB v3 性能和功能

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

了解新的 v3 增强功能


InfluxDB 集群版上市

InfluxDB 集群版现已上市,并为您在自管理的堆栈中提供了 InfluxDB v3 的功能。

与我们讨论 InfluxDB 集群版