文档文档

使用 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 代理地址。

开始之前

使用客户端库写入数据

  1. 通过使用您的 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})
    
  2. 使用客户端的 getWriteApi() 方法创建一个 写入客户端。提供您的 InfluxDB 组织 ID 和数据库名称。

    const writeApi = influxDB.getWriteApi(process.env.INFLUX_ORG,
                                           process.env.INFLUX_DATABASE)
    
  3. 要将一个或多个标签应用到所有点,请使用useDefaultTags()方法。以键值对对象的形式提供标签。

    writeApi.useDefaultTags({region: 'west'})
    
  4. 使用Point()构造函数创建一个

    1. 调用构造函数并提供一个测量
    2. 要添加一个或多个标签,将tag()方法链接到构造函数。提供namevalue
    3. 要添加一个类型为float的字段,将floatField()方法链接到构造函数。提供namevalue
    const point1 = new Point('temperature')
      .tag('sensor_id', 'TLM010')
      .floatField('value', 24.0)
    
  5. 使用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写入文档


这个页面有帮助吗?

感谢您的反馈!


Flux的未来

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

阅读更多

InfluxDB v3增强功能和InfluxDB Clustered现在已普遍可用

新功能包括更快的查询性能和管理工具,这些工具推进了InfluxDB v3产品线。InfluxDB Clustered现在已普遍可用。

InfluxDB v3性能和功能

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

了解新的v3增强功能


InfluxDB Clustered普遍可用

InfluxDB Clustered现在已普遍可用,并为您在自管理堆栈中提供了InfluxDB v3的功能。

与我们讨论InfluxDB Clustered