文档说明

使用 InfluxDB API 写入数据

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

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

发送写入请求

示例中的 URL 依赖于您的 InfluxDB Cloud 区域

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 Cloud 专用中的单点登录(SSO)支持以及用于令牌和数据库的新管理 API。

了解新的 v3 增强功能


InfluxDB 集群版全面上市

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

与我们讨论 InfluxDB 集群版

InfluxDB Cloud 基于 TSM