ALTER SERVICE¶
Modifica a configuração do serviço Snowpark Container Services, atualiza o código do serviço e permite suspender ou retomar um serviço. Você pode:
Aplicar modificações a um serviço em execução. Por exemplo, suspenda ou retome um serviço e atualize o número de instâncias de serviço em execução.
Aplicar modificações que entrarão em vigor somente após o serviço ser reiniciado. Por exemplo, especifique um warehouse padrão para consultas.
Aplicar modificações que façam com que o Snowflake desligue o serviço e reinicie usando o novo código. Por exemplo, talvez você queira implementar um código de serviço atualizado.
Reinicie as instâncias especificadas de um serviço usando o instantâneo fornecido como conteúdo inicial para o volume especificado. O serviço deve ser suspenso antes de você executar ALTER SERVICE.
- Consulte também:
CREATE SERVICE , DESCRIBE SERVICE, DROP SERVICE , SHOW SERVICES
Sintaxe¶
ALTER SERVICE [ IF EXISTS ] <name> { SUSPEND | RESUME }
ALTER SERVICE [ IF EXISTS ] <name>
{
fromSpecification
| fromSpecificationTemplate
}
ALTER SERVICE [IF EXISTS] <service_name> RESTORE VOLUME <volume_name>
INSTANCES <comma_separated_instance_ids>
FROM SNAPSHOT <snapshot_name>
ALTER SERVICE [ IF EXISTS ] <name> SET [ MIN_INSTANCES = <num> ]
[ MAX_INSTANCES = <num> ]
[ MIN_READY_INSTANCES = <num> ]
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ AUTO_RESUME = { TRUE | FALSE } ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
[ COMMENT = '<string_literal>' ]
ALTER SERVICE [ IF EXISTS ] <name> UNSET { MIN_INSTANCES |
MAX_INSTANCES |
MIN_READY_INSTANCES |
QUERY_WAREHOUSE |
AUTO_RESUME |
EXTERNAL_ACCESS_INTEGRATIONS |
COMMENT
}
[ , ... ]
ALTER SERVICE [ IF EXISTS ] <name> SET [ TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]]
Onde:
fromSpecification ::= { FROM SPECIFICATION_FILE = '<yaml_file_path>' -- for native app service. | FROM @<stage> SPECIFICATION_FILE = '<yaml_file_path>' -- for non-native app service. | FROM SPECIFICATION <specification_text> }fromSpecificationTemplate ::= { FROM SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for native app service. | FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for non-native app service. | FROM SPECIFICATION_TEMPLATE <specification_text> } USING ( <key> => <value> [ , <key> => <value> [ , ... ] ] )
Parâmetros¶
name
Especifica o identificador do serviço a ser alterado.
Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.
Para obter mais informações, consulte Requisitos para identificadores.
{ SUSPEND | RESUME }
Especifica se o serviço deve ser suspenso ou retomado.
Quando você suspende um serviço, o Snowflake é encerrado e exclui os contêineres. Se você retomar posteriormente um serviço suspenso, o Snowflake recriará os contêineres. Ou seja, o Snowflake pega a imagem do seu repositório e inicia os containers. Observe que o Snowflake implantará a mesma versão de imagem, não será uma operação de atualização de serviço.
Quando você invoca um serviço suspenso usando uma função de serviço ou invocando o ponto de extremidade público (entrada), o Snowflake retoma automaticamente o serviço.
FROM ...
Identifica a especificação ou a especificação de modelo para o serviço.
Como usar uma especificação de serviço
É possível definir a especificação em linha ou em um arquivo separado.
SPECIFICATION_FILE = 'yaml_file_path'
ou .@stage SPECIFICATION_FILE = 'yaml_file_path'
ou .SPECIFICATION specification_text
Especifica o arquivo com a especificação do serviço ou a especificação do serviço em linha. Se a especificação do serviço estiver em um arquivo, use SPECIFICATION_FILE. Para serviços criados em um Snowflake Native App, omita
@stage
e especifique um caminho relativo ao diretório raiz do aplicativo. Para serviços criados em outros contextos, especifique o estágio interno do Snowflake e o caminho para o arquivo de especificação de serviço.
Como usar um modelo de especificação de serviço
É possível definir a especificação do modelo em linha ou em um arquivo separado.
SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path'
ou .@stage SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path'
ou .SPECIFICATION_TEMPLATE specification_text
Especifica o arquivo com o modelo de especificação de serviço ou o modelo de especificação de serviço em linha. Se o modelo de especificação de serviço estiver em um arquivo, use SPECIFICATION_TEMPLATE_FILE. Para serviços criados em um Snowflake Native App, omita
@stage
e especifique um caminho relativo ao diretório raiz do aplicativo. Para serviços criados em outros contextos, especifique o estágio interno do Snowflake e o caminho para o arquivo de especificação de serviço. Ao usar a especificação de modelo, também é necessário incluir o parâmetroUSING
.USING ( key => value [ , key => value [ , ... ] ] )
Especifica as variáveis do modelo e os valores dessas variáveis.
key
é o nome da variável do modelo. O nome da variável do modelo pode, opcionalmente, ser colocado entre aspas duplas ("
).value
é o valor a ser atribuído à variável no modelo. Os valores da cadeia de caracteres devem ser colocados entre'
ou$$
. O valor deve ser alfanumérico ou JSON válido.
Use uma vírgula entre cada par chave-valor.
RESTORE VOLUME volume_name INSTANCES comma_separated_instance_ids FROM SNAPSHOT snapshot_name
Restaura o instantâneo
snapshot_name
no volume de armazenamento em bloco existentevolume_name
para as instânciascomma_separated_instance_ids
.Os instantâneos só podem ser tirados para volumes de armazenamento em bloco (e não para volumes locais, de memória ou de estágio).
Os nomes de volume diferenciam maiúsculas de minúsculas. Portanto, aspas duplas devem sempre ser usadas para corresponder ao nome correspondente na especificação do serviço.
SET ...
Define uma ou mais propriedades ou parâmetros especificados para o serviço:
MIN_INSTANCES = num
Especifica o número mínimo de instâncias de serviço.
MAX_INSTANCES = num
Especifica o número máximo de instâncias de serviço.
MIN_READY_INSTANCES = num
Especifica as instâncias mínimas de serviço que devem estar prontas para que o Snowflake considere o serviço pronto para processar solicitações. Para obter mais informações, consulte a descrição do parâmetro MIN_READY_INSTANCES em CREATE SERVICE.
Nota
Se quiser usar o comando SHOW SERVICES ou DESCRIBE SERVICE para encontrar o MIN_READY_INSTANCES configurado para o serviço, é necessário habilitar o pacote de mudança de comportamento 2024_08 em sua conta. Para ativar este pacote em sua conta, execute a seguinte instrução:
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_08');
QUERY_WAREHOUSE = warehouse_name
Warehouse a ser usado se um contêiner de serviço se conectar ao Snowflake para executar uma consulta, mas não especificar explicitamente um warehouse a ser usado.
AUTO_RESUME = { TRUE | FALSE }
Especifica se o serviço deve ser retomado automaticamente quando a função de serviço é chamada ou uma solicitação é recebida.
EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )
Especifica os nomes das integrações de acesso externo que permitem que seu serviço acesse sites externos. O Snowflake substitui todos os EAIs existentes por aqueles especificados neste parâmetro. Os nomes nesta lista diferenciam maiúsculas de minúsculas. Para obter mais informações, consulte Saída de rede. Observe que isso altera o acesso de rede permitido para todas as instâncias em execução do serviço. Você não precisa suspender e retomar o serviço explicitamente.
COMMENT = 'string_literal'
Especifica um comentário para o pool de computação.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Especifica o nome da tag e o valor da cadeia de caracteres dela.
O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.
Para obter informações sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.
UNSET ...
Especifica uma ou mais propriedades e/ou parâmetros a serem removidos da definição para o serviço, que os redefine aos padrões (consulte CREATE SERVICE):
MIN_INSTANCES
MAX_INSTANCES
MIN_READY_INSTANCES
QUERY_WAREHOUSE
AUTO_RESUME
EXTERNAL_ACCESS_INTEGRATIONS
COMMENT
Requisitos de controle de acesso¶
Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:
Privilégio |
Objeto |
Notas |
---|---|---|
OPERATE |
Serviço |
|
USAGE |
Instantâneo |
Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso¶
Em relação aos metadados:
Atenção
Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.
Exemplos¶
Suspenda um serviço.
ALTER SERVICE echo_service SUSPEND;
Modifique as propriedades MIN_INSTANCES e MAX_INSTANCES de um serviço existente.
ALTER SERVICE echo_service SET MIN_INSTANCES=3 MAX_INSTANCES=5;
Restaure um instantâneo em um volume de bloco existente associado às instâncias 0 e 2 do serviço example_service
.
ALTER SERVICE example_service
RESTORE VOLUME "myvolume"
INSTANCES 0,2
FROM SNAPSHOT my_snapshot;