CREATE RESOURCE MONITOR

Cria um novo monitor de recursos. Este comando só pode ser executado por administradores de conta.

Consulte também:

ALTER RESOURCE MONITOR , DROP RESOURCE MONITOR , SHOW RESOURCE MONITORS , ALTER WAREHOUSE , ALTER ACCOUNT

Sintaxe

CREATE [ OR REPLACE ] RESOURCE MONITOR [ IF NOT EXISTS ] <name> WITH
                      [ CREDIT_QUOTA = <number> ]
                      [ FREQUENCY = { MONTHLY | DAILY | WEEKLY | YEARLY | NEVER } ]
                      [ START_TIMESTAMP = { <timestamp> | IMMEDIATELY } ]
                      [ END_TIMESTAMP = <timestamp> ]
                      [ NOTIFY_USERS = ( <user_name> [ , <user_name> , ... ] ) ]
                      [ TRIGGERS triggerDefinition [ triggerDefinition ... ] ]
Copy

Onde:

triggerDefinition ::=
    ON <threshold> PERCENT DO { SUSPEND | SUSPEND_IMMEDIATE | NOTIFY }
Copy

Parâmetros obrigatórios

name

Identificador do monitor de recursos; deve ser único para sua conta.

O identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes, consulte Requisitos para identificadores.

Parâmetros opcionais

CREDIT_QUOTA = num

O número de créditos alocados ao monitor de recursos por intervalo de frequência. Quando a utilização total de todos os warehouses atribuídos ao monitor atinge este número do intervalo de frequência atual, o monitor de recursos é considerado como tendo 100% da cota.

Se um valor não for especificado para um monitor de recursos, o monitor não tem cota e nunca alcançará 100% de uso dentro do intervalo especificado.

Padrão: sem valor (ou seja, sem cota de crédito)

FREQUENCY = MONTHLY | DAILY | WEEKLY | YEARLY | NEVER

O intervalo de frequência no qual o uso de crédito é redefinido como 0.

Se você definir uma frequência para um monitor de recursos, você também deve definir START_TIMESTAMP.

Se você especificar NEVER para a frequência, o uso de crédito para o warehouse não é reinicializado.

Padrão: sem valor (ou seja, comportamento herdado, em que a cota de crédito é redefinida no início de cada mês de calendário)

START_TIMESTAMP = timestamp | IMMEDIATELY

A data e hora em que o monitor de recursos começa a monitorar o uso de crédito para os warehouses designados.

Se você definir um carimbo de data/hora para um monitor de recursos, você também deverá definir FREQUENCY.

Se você especificar IMMEDIATELY para o carimbo de data/hora de início, é usado o carimbo de data/hora atual.

Se você especificar uma data sem hora, a hora atual é utilizada.

Se você definir uma hora sem especificar um fuso horário, UTC será usado como fuso horário padrão.

Padrão: sem valor (ou seja, comportamento herdado, pelo qual o monitor de recursos começa a monitorar os warehouses imediatamente)

END_TIMESTAMP = timestamp

A data e a hora em que o monitor de recursos suspende os warehouses designados.

Padrão: sem valor (ou seja, sem data de suspensão do warehouse)

NOTIFY_USERS = ( user_name [ , user_name , ... ] )

Especifica a lista de usuários a receber notificações por e-mail nos monitores de recursos. Se um identificador de usuário incluir espaços ou caracteres especiais ou for sensível a maiúsculas e minúsculas, então o identificador deve ser delimitado por aspas duplas (por exemplo “Mary Smith”). Consulte Requisitos para identificadores para obter mais detalhes.

O identificador do usuário, user_name, é o valor da coluna name da saída de SHOW USERS.

Cada usuário listado deve ter um endereço de e-mail verificado. Para instruções sobre a verificação de endereços de e-mail na interface da web, consulte:

Notificações por e-mail para usuários não administradores não substituem as notificações por e-mail para administradores. Qualquer administrador de conta que tenha ativado notificações por e-mail continuará a receber notificações por e-mail.

Nota

  • As seguintes limitações se aplicam aos usuários não administradores:

    • Os usuários não administradores são notificados por e-mail, mas não podem ver as notificações na Classic Console.

    • Os usuários não administradores não podem criar monitores de recursos.

    • As notificações são limitadas a monitores de recursos em warehouses individuais; usuários não administradores não podem receber notificações sobre monitores de recursos em nível de conta.

    • Os usuários não administradores não podem ser notificados sobre os monitores de recursos no nível de conta.

    • Os usuários não administradores não podem designar outros usuários para serem notificados.

TRIGGERS ... (também conhecido como ações)

Especifica um ou mais acionadores para o monitor de recursos. Cada definição de acionador consiste no seguinte:

ON threshold PERCENT

Um valor numérico especificado como uma porcentagem da cota de crédito para o monitor de recursos; valores maiores que 100 são suportados. Assim que o uso atinge este limite do intervalo de frequência atual, o acionador é ativado.

DO SUSPEND | SUSPEND_IMMEDIATE | NOTIFY

Especifica a ação executada pelo acionador quando o limiar é atingido:

  • SUSPEND: suspender todos os warehouses designados enquanto permite que as consultas atualmente em execução sejam completadas. Nenhuma nova consulta pode ser executada pelos warehouses até que a cota de crédito para o monitor de recursos seja aumentada. Além disso, esta ação envia uma notificação a todos os usuários que habilitaram notificações para si mesmos.

  • SUSPEND_IMMEDIATE: suspender imediatamente todos os warehouses designados e cancelar qualquer consulta ou instrução atualmente em andamento usando os warehouses. Além disso, esta ação envia uma notificação a todos os usuários que habilitaram notificações para si mesmos.

  • NOTIFY: enviar uma notificação (a todos os administradores de conta com notificações habilitadas), mas não tomar nenhuma outra medida.

Padrão: sem valor (ou seja, o monitor de recursos não realiza nenhuma ação)

Notas de uso

  • Os acionadores são opcionais; entretanto, pelo menos um acionador deve ser adicionado a um monitor de recursos antes que ele possa executar qualquer ação.

  • Cada monitor de recursos oferece suporte a até um máximo de 5 acionadores de ação NOTIFY.

  • Após a criação de um monitor de recursos, ele deve ser atribuído a um warehouse ou conta antes de poder realizar qualquer ação de monitoramento:

    • Para atribuir um warehouse a um monitor de recursos, use ALTER WAREHOUSE (ou CREATE WAREHOUSE se você estiver criando o warehouse).

    • Para atribuir um monitor de recursos no nível de conta, use ALTER ACCOUNT. O parâmetro NOTIFY_USERS deve ser nulo.

  • Para visualizar todos os monitores de recursos criados em sua conta e suas atribuições, use o comando SHOW RESOURCE MONITORS. O comando de saída exibe NULL na coluna level para monitores de recursos que não estão atribuídos à conta ou a qualquer warehouse e, portanto, não estão monitorando nenhum uso de crédito.

  • Se os parâmetros frequency e start_timestamp forem definidos em um monitor de recursos, o dia da redefinição do uso de crédito é calculado com base nesses parâmetros. A hora de redefinição 0 do uso de crédito é 12:00h AM UTC, independentemente da hora especificada em start_timestamp.

  • Se você especificar um end_timestamp, o monitoramento terminará na data e hora especificadas e todos os warehouses atribuídos serão suspensos nessa data e hora, mesmo que a cota de crédito não tenha sido atingida.

    Quando isso ocorre, é enviada uma notificação informando que o monitor de recursos atingiu uma porcentagem de sua cota e acionou uma ação imediata de suspensão. A porcentagem da cota reflete o número de créditos usados no intervalo atual até a data de término e pode não ser um limite especificado.

  • Se houver usuários não administradores na lista de notificação, as seguintes observações serão aplicadas:

    • Se algum usuário não tiver um e-mail verificado, a instrução SQL falhará.

    • Se qualquer usuário na lista de notificação mudar seu endereço de e-mail e não verificar o novo endereço de e-mail, a notificação silenciosamente falhará.

    • A lista de notificação é limitada a um número máximo de 5 usuários não administradores.

    • Os administradores de conta podem visualizar a lista de notificação de usuários não administradores na saída de SHOW RESOURCE MONITORS na coluna notify_user.

  • 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.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

Importante

Para receber notificações geradas por monitores de recursos, os administradores de conta e os usuários não administradores na lista de notificação devem ativar explicitamente as notificações em suas preferências. Além disso, para receber notificações por e-mail, os usuários devem ter um e-mail verificado em suas preferências. As preferências só podem ser definidas na interface da web do Snowflake. Para obter mais informações, consulte Ativação do recebimento de notificações.

Exemplos

Criar um monitor de recursos chamado limiter com 3 acionadores:

CREATE OR REPLACE RESOURCE MONITOR limiter
  WITH CREDIT_QUOTA = 5000
  TRIGGERS ON 75 PERCENT DO NOTIFY
           ON 100 PERCENT DO SUSPEND
           ON 110 PERCENT DO SUSPEND_IMMEDIATE;
Copy

Criar um monitor de recursos para enviar notificações a três usuários quando 75% da cota de crédito for atingida. Neste exemplo, o user_name para dois dos usuários inclui um espaço e, portanto, precisa ser delimitado por aspas duplas:

CREATE OR REPLACE RESOURCE MONITOR limiter
  WITH CREDIT_QUOTA = 5000
       NOTIFY_USERS = (JDOE, "Jane Smith", "John Doe")
  TRIGGERS ON 75 PERCENT DO NOTIFY
           ON 100 PERCENT DO SUSPEND
           ON 110 PERCENT DO SUSPEND_IMMEDIATE;
Copy