适用于 InfluxDB v3 的 Go 客户端库
InfluxDB v3 的 influxdb3-go
Go 客户端库 与 Go 脚本和应用程序集成,以便写入和查询存储在 InfluxDB 集群数据库中的数据。
安装
go get github.com/InfluxCommunity/influxdb3-go
导入包
influxdb3-go
客户端库模块提供了 influxdb3
包。
导入包
import (
"github.com/InfluxCommunity/influxdb3-go/influxdb3"
)
API 参考
函数 New
创建与 InfluxDB 交互的客户端。
语法
New(config ClientConfig)
初始化并返回一个具有以下配置和函数的 influxdb3.Client
实例:
- 写入数据库的配置和函数。
- 一个
*flight.Client
和查询数据库的函数。
参数
config
: 包含以下配置属性的ClientConfig
结构体Host
(字符串): InfluxDB 集群服务器 URLToken
(字符串): 数据库令牌字符串Database
(字符串): 用于写入和查询的数据库。Organization
(字符串): 可选. 组织名称或 ID。HTTPClient
(*http.Client
): 可选. 指定要使用的自定义 HTTP 客户端、TLS 配置或超时。WriteOptions
(*WriteOptions
): 可选. 传递给写入客户端的写入数据库的选项。Headers
(http.Header
): 可选. 包括在所有请求中的标头。
示例
创建 InfluxDB 客户端
package main
import (
"github.com/InfluxCommunity/influxdb3-go/influxdb3"
)
func main() {
client, err := influxdb3.New(influxdb3.ClientConfig{
Host: "https://cluster-host.com",
Token: "DATABASE_TOKEN",
Database: "DATABASE_NAME",
})
defer func(client *influxdb3.Client) {
err := client.Close()
if err != nil {
panic(err)
}
}(client)
if(err != nil) {
panic(err)
}
}
替换以下配置值
类 influxdb3.Client
函数 Client.Query()
使用 SQL 查询 InfluxDB v3 中的数据。
语法
client.Query(ctx context.Context, query string)
向 InfluxDB 发送带有 SQL 的 Flight 查询请求。
返回以下内容:
- 用于访问查询结果数据和元数据的自定义迭代器 (*QueryIterator)。
- 如果有错误,则返回错误。
参数
ctx
(context.Context
): 用于请求的上下文query
(字符串): 要执行的 SQL 查询。
示例
使用 SQL 查询
query := `SELECT *
FROM home
WHERE time >= '2022-01-02T08:00:00Z'
AND time <= '2022-01-02T20:00:00Z'`
iterator, err := client.Query(context.Background(), query)
函数 Client.QueryWithOptions()
使用查询选项从 InfluxDB v3 查询数据,例如用于 InfluxQL 查询的 查询类型。
语法
client.QueryWithOptions(ctx context.Context, options *QueryOptions, query string)
向 InfluxDB 发送带有指定查询选项的查询请求。
返回以下内容:
- 用于访问查询结果数据和元数据的自定义迭代器 (*QueryIterator)。
- 如果有错误,则返回错误。
参数
ctx
(context.Context
): 用于请求的上下文options
: 查询选项(查询类型、可选数据库)query
(字符串): 要执行的 SQL 或 InfluxQL 查询。
示例
使用 InfluxQL 查询
query := `SELECT *
FROM home
WHERE time >= 1641124000s
AND time <= 1641124000s + 8h`
queryOptions := influxdb3.QueryOptions{QueryType: influxdb3.InfluxQL}
iterator, err := client.QueryWithOptions(context.Background(), &queryOptions, query)
这个页面有帮助吗?
感谢您的反馈!