文档文档

InfluxDB v2 Go 客户端库

使用 InfluxDB 3 客户端进行查询

InfluxDB 3 支持使用 InfluxDB v2 和 v1 工具写入数据的兼容性端点。但是,/api/v2/query API 端点和相关的工具,例如 InfluxDB v2 客户端库和 influx CLI,无法查询存储在 InfluxDB 3 Core 中的数据。

InfluxDB 3 客户端库可用于集成到您的代码中,以写入和查询存储在 InfluxDB 3 Core 中的数据。

比较您可以使用的工具来与 InfluxDB 3 Core 交互。

使用 InfluxDB Go 客户端库 将数据写入 InfluxDB 3 Core 数据库。

本指南假定您对 Go 和 InfluxDB 有一定的熟悉度。如果刚刚入门,请参阅InfluxDB 快速入门

开始之前

  1. 安装 Go 1.13 或更高版本.

  2. 将客户端软件包添加到您的项目依赖项中。

    # Add InfluxDB Go client package to your project go.mod
    go get github.com/influxdata/influxdb-client-go/v2
    
  3. 确保 InfluxDB 正在运行并且您可以连接到它。有关用于连接到 InfluxDB 3 Core 集群的 URL 信息,请联系您的 InfluxData 客户代表。

InfluxDB Go 客户端库的样板代码

使用 Go 库来写入和查询 InfluxDB 中的数据。

  1. 在您的 Go 程序中,导入必要的包并指定可执行程序的入口点。

    package main
    
    import (
        "context"
        "fmt"
        "time"
    
        "github.com/influxdata/influxdb-client-go/v2"
    )
    
  2. 为您的 InfluxDB 数据库 (bucket)、组织 (必需,但会被忽略) 和 数据库令牌 定义变量。

    bucket := "DATABASE_NAME"
    org := "ignored"
    token := "DATABASE_TOKEN"
    // Store the URL of your InfluxDB instance
    url := "https://localhost:8181"
    
  3. 创建 InfluxDB Go 客户端并传入 urltoken 参数。

    client := influxdb2.NewClient(url, token)
    
  4. 使用 WriteAPIBlocking 方法创建一个写入客户端,并传入 orgbucket 参数。

    writeAPI := client.WriteAPIBlocking(org, bucket)
    

使用 Go 将数据写入 InfluxDB

使用 Go 库来写入数据到 InfluxDB。

  1. 创建一个 并使用 API writer 结构体的 WritePoint 方法将其写入 InfluxDB。

  2. 关闭客户端以刷新所有待处理的写入并完成。

    p := influxdb2.NewPoint("stat",
      map[string]string{"unit": "temperature"},
      map[string]interface{}{"avg": 24.5, "max": 45},
      time.Now())
    writeAPI.WritePoint(context.Background(), p)
    client.Close()
    

完整的示例写入脚本

package main

import (
      "context"
      "fmt"
      "time"

      "github.com/influxdata/influxdb-client-go/v2"
)

func main() {
    bucket := "DATABASE_NAME"
    org := "ignored"
    token := "DATABASE_TOKEN"
    // Store the URL of your InfluxDB instance
    url := "https://localhost:8181"
    // Create new client with default option for server url authenticate by token
    client := influxdb2.NewClient(url, token)
    // User blocking write client for writes to desired bucket
    writeAPI := client.WriteAPIBlocking(org, bucket)
    // Create point using full params constructor
    p := influxdb2.NewPoint("stat",
        map[string]string{"unit": "temperature"},
        map[string]interface{}{"avg": 24.5, "max": 45},
        time.Now())
    // Write point immediately
    writeAPI.WritePoint(context.Background(), p)
    // Ensures background processes finishes
    client.Close()
}

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最新数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、只读副本、增强的安全性以及数据压缩,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层级可供非商业家庭或业余爱好者使用。

有关更多信息,请查看