文档

适用于 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 集群服务器 URL
    • Token (字符串): 数据库令牌字符串
    • 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) } }

替换以下配置值

  • DATABASE_NAME: 要查询的 数据库 名称
  • DATABASE_TOKEN: 具有在指定数据库上 读取 权限的 数据库令牌

类 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)

这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 将进入维护模式。您可以在不修改代码的情况下继续按当前方式使用它。

阅读更多

InfluxDB v3 增强功能和 InfluxDB Clustered 现已上市

新功能包括更快的查询性能和管理工具,这些功能推进了 InfluxDB v3 产品线。InfluxDB Clustered 现已上市。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面取得了显著提升,并提供了新的管理工具。这些增强功能包括用于监控 InfluxDB 集群健康状况的操作仪表板、InfluxDB Cloud Dedicated 中的单点登录(SSO)支持以及用于令牌和数据库的新管理 API。

了解新的 v3 增强功能


InfluxDB Clustered 上市

InfluxDB Clustered 现已上市,为您在自行管理的堆栈中提供了 InfluxDB v3 的功能。

与我们谈论 InfluxDB Clustered