文档文档

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 服务器 URL
    • Token (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) } }

替换以下配置值

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

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

此页内容对您有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在一样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、最新数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建于 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看