文档文档

InfluxDB v2 Go 客户端库

使用 InfluxDB 3 客户端

/api/v2/query API 端点和相关工具(例如 InfluxDB v2 客户端库和 influx CLI)无法查询 InfluxDB 集群。

InfluxDB 3 客户端库Flight SQL 客户端 可用,它们与您的代码集成,用于写入和查询存储在 InfluxDB Clustered 中的数据。

InfluxDB 3 支持许多不同的工具,用于写入查询数据。 比较您可以使用的工具来与 InfluxDB Clustered 交互。

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

本指南假定您对 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 正在运行并且您可以连接到它。有关使用哪个 URL 连接到您的 InfluxDB 集群的信息,请联系您的 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://cluster-host.com"
    
  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://cluster-host.com"
    // 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 开源版本现已公开发布 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是一个用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看