InfluxDB v2 Go 客户端库
使用 InfluxDB 3 客户端
/api/v2/query API 端点及相关工具,如 InfluxDB v2 客户端库和 influx CLI,无法 查询 InfluxDB 集群。
InfluxDB 3 客户端库 和 Flight SQL 客户端 可用,它们与您的代码集成,以写入和查询存储在 InfluxDB 集群中的数据。
InfluxDB 3 支持许多不同的工具用于 写入 和 查询 数据。 比较您可以使用的工具 来与 InfluxDB 集群交互。
使用InfluxDB Go 客户端库向InfluxDB集群数据库写入数据。
本指南假设读者对Go和InfluxDB有一定的了解。
如果刚刚入门,请参见 开始使用InfluxDB。
开始之前
将客户包添加到您的项目依赖中。
# Add InfluxDB Go client package to your project go.mod go get github.com/influxdata/influxdb-client-go/v2确保 InfluxDB 正在运行,并且您可以连接到它。有关连接到您的 InfluxDB 集群时应使用哪个 URL 的信息,请联系您的 InfluxData 账户代表。
InfluxDB Go客户端库的样板代码
使用Go库从InfluxDB中写入和查询数据。
在你的Go程序中,导入必要的包并指定可执行程序的入口点。
package main import ( "context" "fmt" "time" "github.com/influxdata/influxdb-client-go/v2" )为您的 InfluxDB database(bucket)、组织(必需,但被忽略)和 database token 定义变量。
bucket := "DATABASE_NAME" org := "ignored" token := "DATABASE_TOKEN" // Store the URL of your InfluxDB instance url := "https://cluster-host.com"创建 InfluxDB Go 客户端并传入
url和token参数。client := influxdb2.NewClient(url, token)使用 写客户端 创建一个
WriteAPIBlocking方法,并传入org和bucket参数。writeAPI := client.WriteAPIBlocking(org, bucket)
使用Go写入数据到InfluxDB
使用Go库将数据写入InfluxDB。
创建一个 point 并使用 API writer 结构体的
WritePoint方法将其写入 InfluxDB。关闭客户端以刷新所有待处理的写入并完成。
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()
}