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 入门。
开始之前
将客户端包添加到您的项目依赖项中。
# 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 数据库(桶)、组织(必需,但被忽略)和 数据库令牌 的变量。
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。
创建一个点,并使用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()
}
这个页面有帮助吗?
感谢您的反馈!