您可以通过开源的 ClickHouse Go 驱动程序连接到 ByteHouse 企业版,连接后进行数据写入查询等操作。本文为您介绍 ClickHouse Go 驱动连接 ByteHouse 企业版的主要操作流程和操作要点。
推荐使用 Golang 1.21 版本,ClickHouse Go driver 2.35.0 版本。
单击此处下载 v2.35.0 版本驱动程序。
使用 ClickHouse Go Driver 连接 ByteHouse 前,您需要获取 ByteHouse 连接信息。ByteHouse 企业版当前支持应用通过 IAM 子用户或数据库用户连接至 ByteHouse,常用连接信息获取方式说明如下,更多连接信息说明请参见获取集群连接信息。
参数 | 使用 IAM 子用户连接 | 使用数据库用户连接 |
|---|---|---|
Host | 您可以通过集群管理 > 集群列表 > 集群名称 > 基本信息路径,在网络信息模块,查看到当前集群的私网或公网连接地址(即 Host 地址)。 | |
port | 使用 TCP 协议,端口号固定为 9000。 | |
username | 在 ByteHouse 企业版控制台上,单击右上角 ByteHouse 企业版个人中心,单击账号管理,查看并复制集群连接账号名。 | 在 ByteHouse 企业版控制台上,通过权限管理 > 用户 > 用户列表路径,在列表中查看并复制数据库用户名称。 |
password | ByteHouse 企业版集群连接密码。在 ByteHouse 企业版控制台上,单击右上角 ByteHouse 企业版个人中心,单击账号管理,查看并复制集群连接密码。 | |
ByteHouse 企业版 IAM 子用户和数据库用户的差别说明如下:
子用户 | 数据库用户 | |
|---|---|---|
定义 | 由火山引擎主用户使用访问控制服务(IAM)创建的用户。 | ByteHouse 中创建的数据库级别的用户。 |
作用范围 | 集群或引擎级别 | 数据库级别 |
登录方式 |
| API、连接驱动、命令行、生态工具连接 |
适用场景 | 适用于需控制台操作、跨产品统一管控等场景。 | 适用于需要精细管理数据库内数据访问和操作权限的场景。 |
更多 IAM 用户和数据库用户的介绍请参见:权限模型、子用户管理、数据库用户管理。
您可以参考如下代码,连接到 ByteHouse 企业版。使用时,请替换其中的验证信息。
使用时注意替换连接语句中的 <HOST>、<USERNAME>、<连接密码> 等连接信息字段,获取方式请参见获取 ByteHouse 连接信息。Database 为 ByteHouse 企业版的数据库名称,默认为 default,如需连接至其他数据库,可设置为所需数据库名称。
import ( "context" "fmt" "github.com/ClickHouse/clickhouse-go/v2" ) conn, _ := clickhouse.Open(&clickhouse.Options{ Addr: []string{"<HOST>:9000"}, Auth: clickhouse.Auth{Database: "default", Username: "<USERNAME>", Password: "<连接密码>"}, }) // test connection if err := conn.Ping(context.Background()); err != nil { fmt.Printf("error %s", err) } defer conn.Close()
您也可以在 ByteHouse 企业版控制台上的集群管理 > 集群列表 > 集群名称 > 连接集群页签中,查看到 Golang 驱动程序的连接命令,点击复制按钮即可获取。
另外,您可参考以下 SQL 用例,连接和使用 ByteHouse 企业版。