文档说明

InfluxDB v2 Go 客户端库

使用 InfluxDB v3 客户端

API 端点 /api/v2/query 和相关工具,如 InfluxDB v2 客户端库和 influx CLI,不能 查询 InfluxDB 集群。

InfluxDB v3 客户端库Flight SQL 客户端 可用,它们与您的代码集成,以写入和查询 InfluxDB 集群中的数据。

InfluxDB v3 支持许多不同的工具用于 写入查询 数据。 比较您可用的工具 以与 InfluxDB 集群交互。

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

本指南假定您对 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 集群的 URL 信息,请联系您的 InfluxData 账户代表。

InfluxDB Go 客户端库样板代码

使用 Go 库从 InfluxDB 写入和查询数据。

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

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

    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. 创建一个,并使用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 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