本文为您介绍如何使用JDBC、PSQL连接计算组实例。
使用JDBC连接Hologres实例
命令格式
- 未在连接字符串中显式指定计算组时,将使用用户默认的计算组连接实例。 - jdbc:postgresql:<Endpoint>:<Port>/<database_name>
- 显式指定计算组。 - jdbc:postgresql://<Endpoint>:<Port>/<database_name>@<warehouse_name>
参数说明
| 参数 | 是否必填 | 说明 | 
| Endpoint | 是 | Hologres实例的网络地址和端口。 进入Hologres管理控制台,选择左侧导航栏实例列表,单击目标实例,在实例详情页网络信息中获取网络地址和端口。 重要  请根据SQL运行所在网络环境选择正确的网络地址和端口,否则将无法正常连接。 | 
| Port | 是 | |
| database_name | 是 | 
 | 
| warehouse_name | 否 | 连接实例使用的计算组名称。 | 
使用示例
- 未显式指定计算组 - 如下JDBC连接字符串连接Hologres时,系统会使用用户默认的计算组,连接到hgpostcn-cn-zz4xxxxxxxxxx实例的demo数据库。 - jdbc:postgresql://hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com:80/demo
- 显式指定计算组 - 如下JDBC连接字符串连接Hologres时,系统会使用指定的计算组warehouse_1,连接到实例hgpostcn-cn-zz4xxxxxxxxxx的demo数据库。 - jdbc:postgresql://hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com:80/demo@warehouse_1
使用PSQL连接Hologres实例
命令格式
- 未在连接字符串中显式指定计算组时,将使用用户默认的计算组连接实例。 - PGUSER="<AccessKey_ID>" PGPASSWORD="<AccessKey_Secret>" psql -h <Endpoint> -p <Port> -d <database_name>
- 显式指定计算组。 - PGUSER="<AccessKey_ID>" PGPASSWORD="<AccessKey_Secret>" psql -h <Endpoint> -p <Port> -d <database_name>@<warehouse_name>
参数说明
| 参数 | 是否必填 | 说明 | 
| AccessKey_ID | 是 | 
 | 
| AccessKey_Secret | 是 | 
 | 
| Endpoint | 是 | Hologres实例的网络地址。 进入Hologres管理控制台的实例详情页获取网络地址。 | 
| Port | 是 | Hologres实例的网络端口。 进入Hologres管理控制台的实例详情页获取网络端口。 | 
| database_name | 是 | 
 | 
| warehouse_name | 否 | 连接实例使用的计算组名称。 | 
使用示例
- 未显式指定计算组 - 如下PSQL连接字符串连接Hologres时,系统会使用用户默认的计算组,连接到hgpostcn-cn-zz4xxxxxxxxxx实例的demo数据库。 - PGUSER="xxx" PGPASSWORD="xxx" psql -h hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com -p 80 -d demo
- 显式指定计算组 - 如下PSQL连接字符串连接Hologres时,系统会使用指定的计算组warehouse_1,连接到hgpostcn-cn-zz4xxxxxxxxxx实例的demo数据库。 - PGUSER="xxx" PGPASSWORD="xxx" psql -h hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com -p 80 -d demo@warehouse_1
使用SQL切换当前连接计算组
Hologres V4.0版本起,支持通过SQL切换当前连接的计算组。
命令格式
-- 切换当前连接计算组
SET current_warehouse = <warehouse_name>;
-- 验证:查询当前连接计算组
SHOW current_warehouse;注意事项
- 当前连接成功切换计算组后,连接上的GUC、Prepared Statements等状态保持不变。 
- 只支持Session级别设置,不支持DB、User等级别设置,否则报错“This can only be set at session level.”。 
- 当前连接用户需具备目标计算组权限,否则报错“Permission denied for warehouse "xxx".”。 
- 连接上存在临时表TEMP TABLE时,不支持切换。