Se uma instância do Hologres possui múltiplos virtual warehouses, direcione a conexão para um específico ou alterne entre eles durante a sessão sem reconectar. Este tópico explica como especificar um virtual warehouse nas strings de conexão JDBC e psql e como trocar de warehouse via SQL após estabelecer a conexão.
Conexão via JDBC
Formato da string de conexão
Sem virtual warehouse (usa o virtual warehouse padrão):
jdbc:postgresql:<Endpoint>:<Port>/<database_name>
Com virtual warehouse:
jdbc:postgresql://<Endpoint>:<Port>/<database_name>@<warehouse_name>
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Endpoint da instância do Hologres. Acesse o console do Hologres, clique em Instances no painel de navegação à esquerda, selecione a instância desejada e localize o endpoint na seção Network Information da página Instance Details. Selecione o endpoint correspondente ao seu ambiente de rede; o uso de um endpoint incorreto causa falha na conexão. |
|
|
Sim |
Porta da instância do Hologres. Disponível também na seção Network Information. |
|
|
Sim |
Nome do banco de dados do Hologres. Após a criação da instância, o sistema cria automaticamente o banco de dados postgres. Como o banco postgres tem recursos limitados, crie um banco de dados dedicado para cargas de trabalho de produção. Exemplo: |
|
|
Não |
Virtual warehouse para esta conexão. Se omitido, a conexão usa o virtual warehouse padrão. Para alternar de warehouse após a conexão, use SET current_warehouse. |
Exemplos
Sem virtual warehouse: conecta-se ao banco de dados demo com o virtual warehouse padrão.
jdbc:postgresql://hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com:80/demo
Com virtual warehouse: conecta-se ao banco de dados demo usando warehouse_1.
jdbc:postgresql://hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com:80/demo@warehouse_1
Conexão via psql
Formato da string de conexão
Sem virtual warehouse (usa o virtual warehouse padrão):
PGUSER="<AccessKey_ID>" PGPASSWORD="<AccessKey_Secret>" psql -h <Endpoint> -p <Port> -d <database_name>
Com virtual warehouse:
PGUSER="<AccessKey_ID>" PGPASSWORD="<AccessKey_Secret>" psql -h <Endpoint> -p <Port> -d <database_name>@<warehouse_name>
A flag -d aceita <database_name>@<warehouse_name> como um único valor. A parte @<warehouse_name> não é uma flag separada; ela é anexada diretamente ao nome do banco de dados.
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Conta Alibaba Cloud: Seu AccessKey ID. Obtenha-o em Gerenciamento de AccessKey. Conta personalizada: Seu nome de usuário, por exemplo |
|
|
Sim |
Conta Alibaba Cloud: Seu AccessKey secret. Conta personalizada: Sua senha. |
|
|
Sim |
Endpoint da instância do Hologres. Disponível na página Instance Details no console do Hologres. |
|
|
Sim |
Porta da instância do Hologres. Localizada na mesma página Instance Details. |
|
|
Sim |
Nome do banco de dados do Hologres. Após a criação da instância, o sistema cria automaticamente o banco de dados postgres. Como o banco postgres tem recursos limitados, crie um banco de dados dedicado para cargas de trabalho de produção. Exemplo: |
|
|
Não |
Virtual warehouse para esta conexão. Anexe-o ao |
Exemplos
Linha de comando sem virtual warehouse:
PGUSER="xxx" PGPASSWORD="xxx" psql -h hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com -p 80 -d demo
Linha de comando com virtual warehouse:
PGUSER="xxx" PGPASSWORD="xxx" psql -h hgpostcn-cn-zz4xxxxxxxxxx-cn-shenzhen-vpc-st.hologres.aliyuncs.com -p 80 -d demo@warehouse_1
Alternar o virtual warehouse via SQL
Disponível no Hologres V4.0 e versões posteriores.
Use SET current_warehouse para mudar o virtual warehouse da conexão atual sem reconectar. Para verificar o warehouse ativo a qualquer momento, execute SHOW current_warehouse.
Uso básico:
-- Switch to a different virtual warehouse
SET current_warehouse = <warehouse_name>;
-- Verify the active virtual warehouse
SHOW current_warehouse;
Alternar e restaurar: use temporariamente outro warehouse e retorne ao original.
-- Record the current warehouse
SHOW current_warehouse;
-- Switch to a different warehouse
SET current_warehouse = warehouse_2;
-- Verify the switch
SHOW current_warehouse;
-- Restore the original warehouse when done
SET current_warehouse = <original_warehouse_name>;
Observações de uso
A troca de warehouses preserva todo o estado da sessão, incluindo variáveis do Grand Unified Configuration (GUC) e prepared statements.
Essa configuração aplica-se apenas ao nível de sessão. Tentativas de defini-la no nível de banco de dados ou usuário retornam o erro:
This can only be set at session level.O usuário atual deve ter permissões no virtual warehouse de destino. Sem as permissões necessárias, o comando retorna:
Permission denied for warehouse "xxx".Não há suporte para alternância em conexões com tabela temporária (TEMP TABLE) ativa.