InfluxDB 3 的 Go 客户端库
InfluxDB 3 的 influxdb3-go Go 客户端库 可与 Go 脚本和应用程序集成,用于将数据写入 InfluxDB 3 Core 数据库并从中查询数据。
安装
go get github.com/InfluxCommunity/influxdb3-go/v2导入包
influxdb3-go 客户端库模块提供了 influxdb3 包。
导入包
import (
"github.com/InfluxCommunity/influxdb3-go/v2/influxdb3"
)API 参考
函数 New
创建一个客户端以与 InfluxDB 进行交互。
语法
New(config ClientConfig)初始化并返回一个 influxdb3.Client 实例,其中包含以下内容:
- 用于写入数据库的配置和函数。
- 一个
*flight.Client和用于查询数据库的函数。
参数
config:一个ClientConfig结构体,包含以下配置属性:Host(string):InfluxDB 3 Core 服务器 URLToken(string):数据库令牌字符串Database(string):用于写入和查询的数据库。Organization(string):可选。组织名称或 ID。HTTPClient(*http.Client):可选。指定一个自定义 HTTP 客户端、TLS 配置或超时。WriteOptions(*WriteOptions):可选。传递给写入客户端的选项,用于写入数据库。Headers(http.Header):可选。包含在所有请求中的标头。
示例
创建 InfluxDB 客户端
package main
import (
"github.com/InfluxCommunity/influxdb3-go/v2/influxdb3"
)
func main() {
client, err := influxdb3.New(influxdb3.ClientConfig{
Host: "https://:8181",
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 3 查询数据。
语法
client.Query(ctx context.Context, query string)向 InfluxDB 发送一个带有 SQL 的 Flight 查询请求。
返回以下内容:
- 一个自定义迭代器 (*QueryIterator),用于访问查询结果数据和元数据。
- 一个错误(如果有)。
参数
ctx(context.Context):用于请求的上下文query(string):要执行的 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()
使用查询选项(例如,用于使用 InfluxQL 进行查询的查询类型)从 InfluxDB 3 查询数据。
语法
client.QueryWithOptions(ctx context.Context, options *QueryOptions, query string)向 InfluxDB 发送一个带有指定查询选项的查询请求。
返回以下内容:
- 一个自定义迭代器 (*QueryIterator),用于访问查询结果数据和元数据。
- 一个错误(如果有)。
参数
ctx(context.Context):用于请求的上下文options:查询选项(查询类型、可选数据库)query(string):要执行的 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)此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 InfluxDB 3 Core 和本文档提供反馈和错误报告。要获得支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。