使用 Go 查询数据
使用 InfluxDB influxdb3-go
Go 客户端库包和 SQL 或 InfluxQL 查询存储在 InfluxDB 中的数据。通过 Flight+gRPC 协议执行查询并检索数据,然后使用常见的 Go 工具处理数据。
开始使用 Go 查询 InfluxDB
以下示例展示了如何使用 Go 与 influxdb3-go
模块创建客户端并查询 InfluxDB 集群数据库。
安装 Go
按照 Go 下载和安装说明 安装适用于您的系统的最新版本的 Go 编程语言。
创建 Go 模块目录
在您的项目目录中,创建一个新的模块目录并进入该目录。
mkdir influxdb_go_client && cd $_
输入以下命令初始化一个新的 Go 模块
go mod init influxdb_go_client
安装依赖项
在您的终端中,输入以下命令下载并安装客户端库
go get github.com/InfluxCommunity/influxdb3-go
influxdb3-go
*:提供influxdb3
包,并安装用于处理查询返回的 Arrow 数据的 Apachearrow
模块。
依赖项安装完成后,您即可查询和分析存储在 InfluxDB 数据库中的数据。
执行查询
以下示例展示了如何创建 InfluxDB 客户端,使用客户端查询方法选择测量中的所有字段,然后访问查询结果数据和元数据。
在您的 influxdb_go_client
模块目录中,创建一个名为 query.go
的文件,并输入以下示例之一以使用 SQL 或 InfluxQL 进行查询。
替换以下示例代码中的配置值
示例代码执行以下操作
- 为您的模块定义一个
main
包并导入代码中将使用的包。 - 定义一个
Query()
函数。 - 使用 InfluxDB 凭据实例化
influxdb3
客户端并将其分配给client
变量。 - 定义一个延迟函数,在
Query()
执行完成后关闭客户端。 - 定义要执行的 SQL 查询。
- 调用客户端的
Query(ctx context.Context, query string)
方法,并将 SQL 字符串作为query
参数传递。Query()
返回以下内容*influxdb3.QueryIterator
:用于从查询结果流中读取数据的自定义迭代器。error
:Flight 请求错误。
示例代码执行以下操作
为您的模块定义一个
main
包并导入代码中将使用的包。定义一个
Query()
函数。使用 InfluxDB 凭据实例化
influxdb3
客户端并将其分配给client
变量。定义一个延迟函数,在
Query()
执行完成后关闭客户端。定义要执行的 InfluxQL 查询。
调用以下客户端方法
QueryWithOptions(ctx context.Context, options *QueryOptions, query string)
并传递以下参数
- options:一个具有
QueryType
属性设置为influxdb3.InfluxQL
的QueryOptions
结构。 - query:一个字符串。要执行的 SQL 或 InfluxQL 查询。
QueryWithOptions
返回以下内容*influxdb3.QueryIterator
:提供访问查询结果数据和元数据的自定义迭代器。error
:Flight 请求错误。
- options:一个具有
运行示例
在您的
influxdb_go_client
模块目录中,创建一个名为main.go
的文件。在
main.go
中,输入以下示例代码以定义一个调用Query()
函数的main()
可执行函数package main func main() { Query() }
在您的终端中,输入以下命令以安装必要的包,构建模块并运行程序
go build && go run influxdb_go_client
程序执行
main()
函数,该函数写入数据并将查询结果打印到控制台。
这个页面有帮助吗?
感谢您的反馈!