使用 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()函数,该函数写入数据并将查询结果打印到控制台。
这个页面有帮助吗?
感谢您的反馈!