本文为您介绍如何使用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时,不支持切换。