Monitoramento do uso de crédito com Budgets

Budgets permite o monitoramento em nível de conta e a notificação do uso de crédito do Snowflake para um grupo de objetos específicos do Snowflake.

Neste tópico:

Visão geral de Budgets

Um orçamento define um limite mensal de gastos nos custos de computação para uma conta Snowflake ou um grupo personalizado de objetos Snowflake. Quando o limite de gastos for excedido, um e-mail de notificação diário será enviado aos endereços de e-mail designados para receber notificações de orçamento.

Nota

Budgets exige o pacote 2023_06. Este pacote está atualmente ativado por padrão em todas as contas. Se sua conta estiver em uma região compatível com Budgets e você tiver desativado explicitamente o pacote, Budgets não estará disponível até que você ative o pacote.

Orçamento de conta e orçamentos personalizados

Para começar a usar orçamentos no Snowflake, ative o orçamento da conta. O orçamento da conta monitora os gastos de todos os objetos suportados na conta. Para receber notificações sobre o orçamento, configure o limite de gastos e especifique endereços de e-mail para receber notificações.

Você também pode criar orçamentos personalizados para monitorar os limites de gastos de um grupo específico de objetos suportados. Você pode criar um orçamento personalizado em qualquer banco de dados e esquema. Assim como o orçamento da conta, você deve definir o limite de gastos e os endereços de e-mail de notificação para receber e-mails de notificação.

Limite de gastos e intervalo de tempo

O limite de gastos é expresso em créditos Snowflake e é usado apenas para fins de alertas e notificações. O limite de gastos é definido para o intervalo de tempo de um mês do calendário.

O intervalo de tempo começa às 12:00AM UTC do primeiro dia do mês e termina às 11:59PM UTC do último dia do mês. Se um orçamento for criado após o primeiro dia do mês, o primeiro intervalo de monitoramento será o período até o último dia do mês atual e será redefinido no primeiro dia do mês seguinte.

Se você ativar o orçamento da conta após o primeiro dia do mês, os dados a partir do início do mês serão preenchidos e usados para determinar se você excederá o limite de gastos do mês.

Se você criar um orçamento personalizado após o primeiro dia do mês, os dados históricos do mês não serão preenchidos. A previsão de gastos futuros é baseada no uso de crédito apenas nos dias após a ativação do orçamento.

Nota

Se você criar um orçamento personalizado após o primeiro dia do mês, poderá exceder o orçamento do primeiro mês. Em um mês parcial, o uso de crédito antes da criação do orçamento não é preenchido para orçamentos personalizados e pode resultar em previsões incorretas. Os meses subsequentes preverão corretamente o uso de crédito com base no histórico de gastos.

Objetos com suporte

A lista de objetos com suporte contribui para o limite de gastos do orçamento da conta. Para um orçamento personalizado, você pode selecionar objetos específicos para monitorar.

Os seguintes objetos possuem suporte para monitoramento por um orçamento:

  • Tabelas

  • Exibições materializadas

  • Esquemas

  • Bancos de dados

  • Warehouses

  • Canais

  • Tarefas

Recursos sem servidor suportados

Budgets monitora o uso de crédito de recursos sem servidor para os objetos suportados contidos em um orçamento. Os seguintes recursos sem servidor são compatíveis:

Recurso sem servidor

Objeto

AUTO_CLUSTERING

Tabela

MATERIALIZED_VIEW

Tabela

PIPE

Canal

QUERY_ACCELERATION

Warehouse

SEARCH_OPTIMIZATION

Tabela

SERVERLESS_TASK

Tarefa

SNOWPIPE_STREAMING

Canal

WAREHOUSE_METERING

Warehouse

WAREHOUSE_METERING_READER

Warehouse

Notificações

Um orçamento envia uma notificação de alerta diária quando os gastos atuais estão prestes a exceder o limite de gastos com base na previsão de série temporal. Para receber notificações de alerta automáticas, você deve:

  • Definir um limite de gastos para o orçamento.

  • Configurar notificações por e-mail para o orçamento.

A seguir, um exemplo de um e-mail de notificação:

Example Budgets Email

Funções e privilégios de orçamento

Você pode conceder funções e privilégios a uma função personalizada para conceder a capacidade de criar novos orçamentos, modificar um orçamento existente e monitorar um orçamento.

Funções e privilégios necessários para criar orçamentos

Nota

Somente um usuário com a função ACCOUNTADMIN pode ativar o orçamento da conta.

Você pode usar uma função personalizada para criar orçamentos personalizados em sua conta. A função personalizada deve ter:

  • A função de banco de dados SNOWFLAKE SNOWFLAKE.BUDGET_CREATOR.

  • O privilégio CREATE SNOWFLAKE.CORE.BUDGET no esquema no qual o orçamento será criado.

Por exemplo, crie uma função budget_admin e conceda a função e os privilégios necessários para criar orçamentos personalizados no esquema budgets_db.budgets_schema:

CREATE ROLE budget_admin;

GRANT DATABASE ROLE SNOWFLAKE.BUDGET_CREATOR TO ROLE budget_admin;

GRANT USAGE ON SCHEMA budgets_db.budgets_schema TO ROLE budget_admin;

GRANT CREATE SNOWFLAKE.CORE.BUDGET ON SCHEMA budgets_db.budgets_schema
  TO ROLE budget_admin;
Copy

Funções de aplicativo para gerenciar o orçamento da conta

Você pode conceder as seguintes funções de aplicativo a uma função personalizada em sua conta para modificar ou monitorar o orçamento da conta.

Função do aplicativo

Descrição

BUDGET_VIEWER

Permite que uma função visualize dados de uso do orçamento.

BUDGET_ADMIN

Permite que uma função modifique as propriedades de um orçamento, incluindo o limite de gastos, a lista de endereços de e-mail para receber notificações e a configuração de silenciar notificações.

Exemplos

Nota

Somente um usuário com a função ACCOUNTADMIN pode executar os exemplos a seguir.

Conceda à função personalizada budget_admin a capacidade de modificar o orçamento da conta:

GRANT APPLICATION ROLE SNOWFLAKE.BUDGET_ADMIN TO ROLE budget_admin;
Copy

Conceda à função personalizada budget_monitor a capacidade de visualizar dados de uso do orçamento:

GRANT APPLICATION ROLE SNOWFLAKE.BUDGET_VIEWER TO ROLE budget_monitor;
Copy

Funções de instância para gerenciar orçamentos personalizados

Cada orçamento personalizado possui funções de instância que podem ser concedidas a outras funções para visualizar ou modificar o orçamento:

Função de instância

Descrição

VIEWER

Permite que uma função visualize dados de uso do orçamento.

ADMIN

Permite que uma função modifique as propriedades de um orçamento, incluindo limite de gastos, lista de endereços de e-mail para receber notificações, configuração de silenciar notificações e os objetos no grupo.

Nota

Atualmente, você só pode modificar objetos em um orçamento personalizado usando comandos SQL.

Exemplos

Nota

Somente a função que criou a instância de orçamento pode executar o exemplo a seguir.

Conceda à função personalizada budget_admin a capacidade de modificar o orçamento my_budget no esquema budgets_db.budgets_schema:

GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.my_budget!ADMIN
  TO ROLE budget_admin;
Copy

Compreensão de custos de Budgets

Para oferecer suporte ao recurso Budgets, o Snowflake armazena metadados no banco de dados SNOWFLAKE. Esses metadados são armazenados na sua conta mesmo que o orçamento da conta não esteja ativado. O armazenamento desses metadados é cobrado em sua conta.

Quando o recurso Budgets está ativado, o Snowflake executa tarefas em segundo plano sem servidor (_MEASUREMENT_TASK e _BACKFILL_TASK) que coletam dados de uso de crédito para o orçamento da conta e orçamentos personalizados em sua conta. Essas tarefas são cobradas em sua conta.

Os dados coletados pelas tarefas em segundo plano de orçamentos são armazenados no banco de dados SNOWFLAKE do orçamento da conta. O armazenamento dos dados é cobrado em sua conta.

Exploração dos custos

Você pode visualizar os custos de tarefas sem servidor usando Snowsight ou Exibição SERVERLESS_TASK_HISTORY do Account Usage. Para obter mais informações sobre como visualizar custos com base no tipo de serviço, consulte Exploração do custo de computação.

Você pode visualizar os custos de armazenamento usando Snowsight ou consultando as exibições Account Usage e Organization Usage. Para obter mais informações sobre como visualizar os custos de armazenamento, consulte Exploração do custo de armazenamento.

Habilitação de Budgets para sua conta

Para ativar orçamentos para sua conta, ative o orçamento da conta.

Ativação do orçamento da conta

Ative o orçamento da conta, defina o limite de gastos da conta e forneça os endereços de e-mail para receber notificações quando o uso de crédito exceder o limite de gastos.

Você pode ativar o orçamento da conta usando Snowsight ou SQL.

Nota

  • Somente administradores de conta podem ativar o orçamento da conta.

  • Depois de ativar o orçamento da conta, você não conseguirá desativá-lo.

Ativação e configuração do orçamento da conta usando o Snowsight

  1. Entre em Snowsight.

  2. Select Admin » Cost Management

  3. Selecione Budgets.

  4. Se solicitado, selecione um warehouse.

  5. No canto superior direito do painel, selecione Set up Account Budget.

  6. Insira o limite de gastos desejado para a conta.

  7. Insira os endereços de e-mail para receber e-mails de notificação.

    Nota

    Cada endereço de e-mail adicionado para notificações de orçamento deve ser verificado. A configuração do e-mail de notificação falhará se algum endereço de e-mail da lista não for verificado.

  8. Selecione Finish Setup.

Quando você adiciona endereços de e-mail para notificações usando Snowsight, o Snowflake cria uma integração de notificação por e-mail em um processo em segundo plano e executa as seguintes ações:

  • Cria uma nova integração de notificação por e-mail chamada default_budget_notification_integration usando os endereços de e-mail inseridos para receber e-mails de notificação.

  • Concede o privilégio USAGE na integração ao aplicativo SNOWFLAKE.

Ativação e configuração do orçamento da conta usando SQL

  1. Ative o orçamento da conta usando o método account_root_budget!ACTIVATE:

    CALL snowflake.local.account_root_budget!ACTIVATE();
    
    Copy
  2. Defina o limite de gastos usando o método <budget_name>!SET_SPENDING_LIMIT:

    CALL snowflake.local.account_root_budget!SET_SPENDING_LIMIT(1000);
    
    Copy
  3. Crie uma NOTIFICATION INTEGRATION com os endereços de e-mail para receber notificações de orçamento.

    Esta etapa é opcional. Se você já tiver uma NOTIFICATION INTEGRATION, pule para a próxima etapa.

    CREATE NOTIFICATION INTEGRATION budgets_notification_integration
      TYPE=EMAIL
      ENABLED=TRUE
      ALLOWED_RECIPIENTS=('costadmin@example.com','budgetadmin@example.com');
    
    Copy

    Conceda o privilégio USAGE na integração de notificação:

    GRANT USAGE ON INTEGRATION budgets_notification_integration
      TO APPLICATION snowflake;
    
    Copy

    Para obter mais informações sobre a criação de NOTIFICATION INTEGRATION, consulte Criação da integração de notificação.

  4. Defina a notificação por e-mail para o orçamento da conta:

    CALL snowflake.local.account_root_budget!SET_EMAIL_NOTIFICATIONS(
       'budgets_notification_integration',
       'costadmin@example.com, budgetadmin@example.com');
    
    Copy

Criação de um orçamento personalizado

Você pode criar um orçamento personalizado para monitorar o uso de crédito de objetos específicos em sua conta.

Criação de um orçamento personalizado usando Snowsight

  1. Entre em Snowsight.

  2. Select Admin » Cost Management

  3. Selecione Budgets.

  4. No canto superior direito do painel, selecione sf-plus-icon-button (adicionar Budget).

    Nota

    Se o ícone Adicionar Budget não for exibido, você deverá primeiro ativar o orçamento da conta.

  5. Insira um Budget name.

  6. Selecione o banco de dados e o esquema no qual deseja criar seu orçamento.

  7. Digite o Spending limit.

  8. Especifique os endereços de e-mail para receber notificações.

    Nota

    Cada endereço de e-mail adicionado para notificações de orçamento deve ser verificado. A configuração do e-mail de notificação falhará se algum endereço de e-mail da lista não for verificado.

  9. Selecione Resources to monitor.

    • Para adicionar um banco de dados, expanda Databases para selecionar um banco de dados.

    • Para adicionar objetos em um esquema, expanda o esquema para listar os objetos disponíveis. Expanda a categoria do objeto (por exemplo, Tables ou Tasks) para selecionar objetos.

    • Para adicionar um warehouse, expanda Warehouses e selecione um warehouse.

    Nota

    Quando você seleciona um banco de dados ou esquema, todos os objetos suportados (por exemplo, tabelas) contidos no banco de dados ou esquema também são adicionados ao orçamento.

Quando você adiciona endereços de e-mail para notificações usando Snowsight, o Snowflake cria ou atualiza uma integração de notificação por e-mail chamada deault_budget_notification_integration em um processo em segundo plano. Se a integração de notificação existir, o Snowflake adicionará quaisquer novos endereços de e-mail inseridos aos endereços de e-mail existentes na lista.

Se a integração de notificação não existir, o Snowflake a cria e concede o privilégio USAGE. Para obter detalhes, consulte as etapas descritas na seção de orçamento da conta.

Criação de um orçamento personalizado usando SQL

Crie um orçamento personalizado e defina o limite de gastos e os endereços de e-mail de notificação.

Nota

  • A função usada para criar o orçamento deve receber a função de banco de dados SNOWFLAKE BUDGET_CREATOR e o privilégio CREATE SNOWFLAKE.CORE.BUDGET. Para obter mais informações, consulte Funções e privilégios de orçamento.

  • Para enviar notificações, o aplicativo SNOWFLAKE deve receber o privilégio USAGE na integração de notificação:

    GRANT USAGE ON INTEGRATION budgets_notification_integration
      TO APPLICATION snowflake;
    
    Copy
  1. Revise os orçamentos existentes em sua conta:

    SELECT SYSTEM$SHOW_BUDGETS_IN_ACCOUNT();
    
    Copy
  2. Crie o orçamento my_budget em budgets_db.budgets_schema usando o comando CREATE SNOWFLAKE.CORE.BUDGET:

    USE SCHEMA budgets_db.budgets_schema;
    
    CREATE SNOWFLAKE.CORE.BUDGET my_budget();
    
    Copy
  3. Defina o limite de gastos para 500 créditos por mês:

    CALL my_budget!SET_SPENDING_LIMIT(500);
    
    Copy
  4. Defina a integração de notificações e os endereços de e-mail:

    Nota

    Se você ainda não criou um e-mail NOTIFICATION INTEGRATION, consulte as etapas na seção de orçamento da conta para criar um.

    CALL my_budget!SET_EMAIL_NOTIFICATIONS('budgets_notification_integration',
                                           'costadmin@example.com');
    
    Copy
  5. Para adicionar objetos ao seu orçamento personalizado, você deve passar uma referência ao método ADD_RESOURCE do orçamento. Por exemplo, para adicionar uma tabela denominada t1 ao orçamento denominado my_budget:

    CALL budgets_db.budgets_schema.my_budget!ADD_RESOURCE(
       SYSTEM$REFERENCE('TABLE', 't1', 'SESSION', 'applybudget'));
    
    Copy

    A instrução SYSTEM$REFERENCE cria uma referência a um objeto TABLE, t1, com o privilégio APPLYBUDGET concedido na tabela. O terceiro parâmetro da função especifica o escopo da referência, neste caso “SESSION” cria uma referência com escopo de sessão. As referências passadas ao método ADD_RESOURCE para um orçamento podem ser criadas com qualquer escopo de referência transitório (ou seja, o terceiro parâmetro pode ser “SESSION” ou “CALL”).

  6. Conceda a função de instância ADMIN à sua função budget_admin personalizada:

    GRANT SNOWFLAKE.CORE.BUDGET ROLE budgets_db.budgets_schema.my_budget!ADMIN
      TO ROLE budget_admin;
    
    Copy

Monitoramento de orçamentos usando o Snowsight

Nota

Somente administradores de conta podem monitorar orçamentos usando Snowsight.

Você pode visualizar os gastos atuais e históricos do orçamento usando a página Budgets em Snowsight.

  1. Entre em Snowsight.

  2. Select Admin » Cost Management

  3. Selecione Budgets.

Na exibição Current Month de um orçamento, você pode revisar o uso de crédito por dia até o dia atual. Você pode ver se pode exceder seu orçamento do mês. O gráfico de barras continua até o fim do mês com o uso de crédito projetado com base no uso real de crédito no mês. A linha Spending limit indica o limite de gastos no qual uma notificação de orçamento é acionada.

Budgets projected spending graph

Selecione sf-clock-time-period-icon (meses a serem exibidos) para filtrar a exibição por Current Month ou períodos mais longos.

Você pode comparar Spend (uso atual de crédito) com Interval (tempo restante do mês atual) para ver se seus gastos estão ultrapassando seu orçamento mensal.

Você pode filtrar a exibição selecionando Budgets icon Budgets ou Resources icon Resources.

  • Você pode selecionar um orçamento personalizado na exibição Budgets para obter detalhes sobre um orçamento específico.

  • Na exibição Resources, você pode filtrar e classificar por Service Type, objeto Name e Credit Usage.

Limitações

  • Atualmente, os e-mails de notificação de orçamento não especificam de qual conta veio a notificação por e-mail.

  • As instâncias da classe BUDGET não podem ser replicadas para contas de destino.

  • Uma conta pode conter no máximo 100 orçamentos personalizados.

  • Atualmente, o Budgets não oferece suporte ao monitoramento de custos para Snowpark Container Services.

Solução de problemas de criação e edição de orçamentos usando SQL

Os cenários a seguir podem ajudar você a solucionar problemas que podem ocorrer ao criar ou editar orçamentos usando SQL.

Você não consegue ativar o orçamento da conta

Existem vários motivos pelos quais você pode não conseguir ativar o orçamento da sua conta.

Erro

Unknown user-defined function SNOWFLAKE.LOCAL.ACTIVATE

Causa

Se sua conta Snowflake for nova, o orçamento da conta ainda não estará disponível em sua conta.

Solução

Aguarde até que o orçamento da conta esteja disponível na sua conta recém-criada. Você pode ativá-lo assim que estiver disponível.

Erro

FAILURE: Uncaught exception of type 'BUDGET_ALREADY_ACTIVATED' on line X at position X

Causa

O orçamento da conta já foi ativado.

Solução

Você pode chamar o método <budget_name>!GET_CONFIG para visualizar o carimbo de data/hora de ativação:

CALL SNOWFLAKE.LOCAL.ACCOUNT_ROOT_BUDGET!GET_CONFIG();
Copy

Erro

-20000 (P0001): Uncaught exception of type 'NO_PERMISSION_TO_ACTIVATE_BUDGET' on line X at position X

Causa

Sua conta ainda não oferece suporte a orçamentos.

Solução

O recurso Budgets está disponível para versão preliminar em todas as edições do Snowflake. Budgets não está disponível em contas de avaliação ou contas em regiões governamentais.

Se sua conta estiver em uma região compatível, mas você não conseguir ativar o orçamento da conta, entre em contato com o suporte Snowflake. Caso contrário, o suporte para sua região estará disponível em uma versão futura.

Você não consegue criar um orçamento personalizado

Existem vários motivos pelos quais você pode não conseguir criar um orçamento personalizado.

Erro

FAILURE: SQL access control error: Insufficient privileges to operate on class 'BUDGET'

Causa

A função que você está usando não tem os privilégios necessários para criar orçamentos personalizados.

Solução

Use uma função com os privilégios necessários. Consulte Funções e privilégios necessários para criar orçamentos.

Erro

FAILURE: Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 :
Uncaught exception of type 'UNSUPPORTED_BUDGET_TYPE' on line X at position X

Causa

Você passa argumentos para o método do construtor para criar um orçamento.

Solução

Consulte CREATE SNOWFLAKE.CORE.BUDGET e edite sua instrução create.

Você não consegue ativar um orçamento personalizado

Erro

FAILURE: Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 :
Uncaught exception of type 'UNSUPPORTED_BUDGET_TYPE' on line X at position X

Causa

Você tentou chamar o método ACTIVATE em um orçamento personalizado.

Solução

O método ACTIVATE está disponível apenas no orçamento da conta. Depois de criar um orçamento personalizado, use os métodos <budget_name>!SET_SPENDING_LIMIT e <budget_name>!SET_EMAIL_NOTIFICATIONS para configurar o orçamento e começar a receber e-mails de notificação.

Você não pode chamar métodos no orçamento da conta

Há vários motivos pelos quais a chamada de um método no orçamento da conta pode falhar.

Erro

-20000 (P0001): Uncaught exception of type 'FUNCTION_NOT_SUPPORTED_FOR_ACCOUNT_ROOT_BUDGET' on line 11 at position 18

Causa

Você tentou chamar qualquer um dos seguintes métodos no orçamento da conta:

Solução

Esses métodos não estão disponíveis no orçamento da conta. O orçamento da conta monitora todos os objetos suportados na conta e os objetos não podem ser adicionados ou removidos. Para obter mais informações, consulte Orçamento de conta e orçamentos personalizados.

Erro

-20000 (P0001): Uncaught exception of type 'ACCOUNT_ROOT_BUDGET_NOT_ACTIVATED' on line X at position X

Causa

Você tentou chamar um método no orçamento da conta antes que o orçamento da conta fosse ativado.

Solução

Ative o orçamento da conta.

O recurso de orçamento não está disponível para sua conta

Erros

FAILURE: SQL compilation error: Class 'SNOWFLAKE.CORE.BUDGET' does not exist or not authorized.
000002 (0A000): Uncaught exception of type 'STATEMENT_ERROR' on line 0 at position -1 : Unsupported feature 'TOK_RESOURCE_GROUP'.

Causa

Sua conta ainda não oferece suporte a orçamentos.

Solução

O recurso Budgets está disponível para versão preliminar em todas as contas de edição do Snowflake. Budgets não está disponível para contas de avaliação ou contas em regiões governamentais.

Se sua conta estiver em uma região compatível, entre em contato com o suporte Snowflake. Caso contrário, o suporte para sua região estará disponível em uma versão futura.