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://localhost: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 支持。