使用 InfluxDB v2 JavaScript 客户端库写入数据
使用 InfluxDB v3 客户端
/api/v2/query
API 端点和相关的工具(例如 InfluxDB v2 客户端库和 influx
CLI)无法查询 InfluxDB 集群。
有 InfluxDB v3 客户端库 和 Flight SQL 客户端 可用,它们与您的代码集成,用于写入和查询 InfluxDB 集群中的数据。
InfluxDB v3 支持许多不同的工具来写入和查询数据。 比较您可以使用以与 InfluxDB 集群交互的工具。
使用InfluxDB v2 JavaScript 客户端库 从 Node.js 环境将数据写入 InfluxDB。
JavaScript 客户端库包括以下方便的特性来将数据写入 InfluxDB
- 将默认标签应用于数据点。
- 将点缓冲到批次中以优化数据传输。
- 自动在失败时重试请求。
- 为您的网络设置可选的 HTTP 代理地址。
开始之前
使用客户端库写入数据
通过使用您的 InfluxDB URL 和数据库令牌(在安装部分中已设置的已设置环境变量)调用
new InfluxDB()
构造函数来实例化客户端。import {InfluxDB, Point} from '@influxdata/influxdb-client' const influxDB = new InfluxDB({url: process.env.INFLUX_URL, token: process.env.INFLUX_TOKEN})
使用客户端的
getWriteApi()
方法创建一个 写入客户端。提供您的 InfluxDB 组织 ID 和数据库名称。const writeApi = influxDB.getWriteApi(process.env.INFLUX_ORG, process.env.INFLUX_DATABASE)
要将一个或多个标签应用到所有点,请使用
useDefaultTags()
方法。以键值对对象的形式提供标签。writeApi.useDefaultTags({region: 'west'})
使用
Point()
构造函数创建一个点。- 调用构造函数并提供一个测量。
- 要添加一个或多个标签,将
tag()
方法链接到构造函数。提供name
和value
。 - 要添加一个类型为
float
的字段,将floatField()
方法链接到构造函数。提供name
和value
。
const point1 = new Point('temperature') .tag('sensor_id', 'TLM010') .floatField('value', 24.0)
使用
writePoint()
方法将点写入您的InfluxDB数据库。最后,使用close()
方法刷新所有挂起的写入。示例将新数据点记录到stdout,并跟随“WRITE FINISHED”。writeApi.writePoint(point1) writeApi.close().then(() => { console.log('WRITE FINISHED') })
完整示例
'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'
/**
* Instantiate the InfluxDB client
* with a configuration object.
**/
const influxDB = new InfluxDB({url: process.env.INFLUX_URL,
token: process.env.INFLUX_TOKEN})
/**
* Create a write client from the getWriteApi method.
* Provide your org and database.
**/
const writeApi = influxDB.getWriteApi(process.env.INFLUX_ORG,
process.env.INFLUX_DATABASE)
/**
* 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')
})
在您的终端中,使用环境变量或env.js
设置,运行以下命令来执行JavaScript文件
node write.js
响应代码
有关InfluxDB API响应代码的信息,请参阅InfluxDB API写入文档。
这个页面有帮助吗?
感谢您的反馈!