文档文档

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://:8181"
  3. 创建 InfluxDB Go 客户端,并传入 urltoken 参数。

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

    writeAPI := client.WriteAPIBlocking(org, bucket)

使用 Go 将数据写入 InfluxDB

使用 Go 库将数据写入 InfluxDB。

  1. 创建一个 point,并使用 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://: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()
}

此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2