Criar cotas de consulta personalizadas

Este documento descreve como definir ou modificar cotas de consulta personalizadas para controlar custos. Para saber como os analistas do BigQuery podem estimar e controlar custos, consulte Estimar e controlar custos.

Se você tem vários projetos e usuários do BigQuery, é possível gerenciar custos ao solicitar uma cota personalizada que especifique um limite na quantidade de dados processados por dia. As cotas diárias são zeradas à meia-noite do fuso horário do Pacífico.

Como a cota personalizada é proativa, não é possível executar uma consulta de 11 TB se você tiver uma cota de 10 TB. A criação de uma cota personalizada nos dados processados permite que você controle custos no nível do projeto ou no nível do usuário.

Para definir controles de custos personalizados, atualize uma ou ambas as cotas de consulta a seguir:

  • QueryUsagePerDay: as cotas personalizadas para envolvidos no projeto limitam o uso agregado de todos os usuários nesse projeto.

  • QueryUsagePerUserPerDay: a cota personalizada no nível do usuário é aplicada separadamente a todos os usuários e contas de serviço em um projeto. Independentemente do limite por usuário, o uso total de todos os usuários no projeto combinado nunca pode exceder o limite de uso de consulta por dia.

O limite padrão para a cota QueryUsagePerDay é de 200 tebibytes (TiB) de dados processados por projeto por dia. O limite padrão para QueryUsagePerUserPerDay é ilimitado. Para conferir seus limites atuais, consulte a página Cotas. É possível mudar os limites a qualquer momento. As substituições personalizadas substituem os limites padrão.

As cotas de uso de consulta se aplicam apenas ao modelo de preços de consulta sob demanda.

Para mais informações sobre as cotas do BigQuery que podem ser definidas, consulte Cotas e limites.

Papel necessário

Para receber a permissão necessária para alterar sua cota, peça ao administrador para conceder a você o papel de Administrador de cotas (role/servicemanagement.quotaAdmin) do IAM no seu projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém a serviceusage.quotas.update permissão, que é necessária para alterar sua cota.

Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.

Definir ou modificar cotas personalizadas

É possível definir uma cota personalizada ou modificar uma atual para qualquer cota exibida na página Cotas e limites do sistema do Google Cloud console. Quando você solicita uma cota menor, a alteração entra em vigor em alguns minutos. Se você solicitar uma cota maior, a solicitação passará por um processo de aprovação, que pode levar mais tempo. Para mais informações, consulte Solicitar ajuste de cota.

Para definir ou atualizar um controle de custos personalizado, como limitar a quantidade de dados do BigQuery que podem ser processados a cada dia, faça o seguinte:

  1. No Google Cloud console do Google Cloud, abra a página IAM e administrador > Cotas e limites do sistema:

    Acesse "Cotas e limites do sistema

  2. Use o filtro Serviço na caixa de pesquisa Filtrar para filtrar a API BigQuery.

  3. Selecione as cotas que você quer ajustar. Por exemplo, para limitar a quantidade de dados que podem ser consultados por dia no nível do projeto e do usuário, selecione Uso de consultas por dia e Uso de consultas por dia por usuário. Talvez seja necessário percorrer a lista para encontrá-las. Depois de selecionar uma cota, uma barra de ferramentas será exibida.

  4. Na barra de ferramentas, clique em Editar. A caixa de diálogo Alterações de cota será aberta.

  5. Se Ilimitado estiver selecionado, desmarque-o.

  6. Insira o valor da cota em TiB que você quer no campo Novo valor.

  7. Clique em Concluído.

  8. Clique em Enviar solicitação.

Para mais informações sobre como visualizar e gerenciar cotas, consulte Visualizar e gerenciar cotas.

Mensagens de erro retornadas

Depois de definir uma cota personalizada, o BigQuery retorna um erro quando você excede essa cota:

  • Se você exceder uma cota personalizada no nível do projeto, o BigQuery retornará o erro usageQuotaExceeded:

    Custom quota exceeded: Your usage exceeded the custom quota for
    QueryUsagePerDay, which is set by your administrator. For more information,
    see https://cloud.google.com/bigquery/cost-controls
  • Se o usuário exceder uma cota personalizada no nível do usuário, o BigQuery retornará um erro usageQuotaExceeded com uma mensagem de erro diferente:

    Custom quota exceeded: Your usage exceeded the custom quota for
    QueryUsagePerUserPerDay, which is set by your administrator. For more
    information, see https://cloud.google.com/bigquery/cost-controls

Execute sua consulta a partir de outro projeto que tenha acesso aos conjuntos de dados e que não tenha uma cota personalizada ou que ainda não tenha sido excedida.

Exemplo

Suponha que você definiu as cotas personalizadas a seguir para um projeto com 10 usuários, sendo um deles uma conta de serviço:

  • No nível do projeto: 50 TB por dia
  • No nível do usuário: 10 TB por dia

As cotas personalizadas no nível do projeto limitam o uso agregado de todos os usuários nesse projeto. As cotas personalizadas no nível do usuário são aplicadas separadamente a cada usuário ou conta de serviço dentro de um projeto.

Veja na tabela a seguir a cota restante à medida que os 10 usuários realizam consultas ao longo do dia.

Uso Cota restante
Cada um dos 10 usuários consulta 4 TB No nível do projeto: 0 TB restante.
No nível do usuário: 6 TB restantes por usuário, mas um total de até 10 TB somente.
A conta de serviço consulta outros 6 TB No nível do projeto: 0 TB restante.
No nível do usuário: a conta de serviço não tem mais permissão para usar o BigQuery. 6 TB restantes para os outros usuários, mas um total de até 4 TB.
Um usuário consulta outros 4 TB No nível do projeto: 0 TB restante.
No nível do usuário: vários TB restantes, mas ninguém pode usar o BigQuery porque a cota no nível do projeto foi excedida.

Sem cota restante, o funcionamento do BigQuery é interrompido para todos nesse projeto.

A seguir