Trabalhar com reservas de slot
Com a API BigQuery Reservation, você compra slots dedicados (chamados compromissos), cria pools de slots (chamados reservas) e atribui projetos, pastas e organizações a essas reservas.
As reservas permitem atribuir um número dedicado de slots
a uma carga de trabalho. Por exemplo, talvez você não queira que uma carga de trabalho de produção compita com cargas de trabalho de teste por slots. É possível criar uma reserva chamada prod
e atribuir suas cargas de trabalho de produção a essa reserva. Para mais informações, consulte Reservas.
Criar reservas
Permissões necessárias
Para criar uma reserva, você precisa da seguinte permissão de gerenciamento de identidade e acesso (IAM):
bigquery.reservations.create
no projeto de administração que mantém a propriedade dos compromissos.
Cada um dos seguintes papéis predefinidos do IAM inclui essa permissão:
BigQuery Resource Editor
BigQuery Resource Admin
Para mais informações sobre os papéis do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Criar uma reserva com slots dedicados
Selecione uma das seguintes opções:
Console
No Console do Google Cloud, acesse a página do BigQuery.
No painel de navegação, acesse a seção Gerenciamento de capacidade e clique em Criar reserva.
No campo Nome da reserva, insira um nome para a reserva.
Na lista suspensa Local, selecione o local. Se você selecionar um local do BigQuery Omni, sua opção de edição será limitada à edição Enterprise.
Na lista Edição, selecione a edição. O escalonamento automático está disponível apenas em uma edição. Para mais informações, consulte Introdução ao BigQuery.
Na lista Seletor de tamanho máximo da reserva, escolha o tamanho máximo da reserva.
Opcional: no campo Slots de valor de referência, insira o número de slots de valor de referência para a reserva.
O número de slots de escalonamento automático disponíveis é determinado subtraindo o valor Slots de referência do Tamanho máximo da reserva. Por exemplo, se você criar uma reserva com 100 slots de valor de referência e um tamanho máximo de 400, sua reserva terá 300 slots de escalonamento automático. Para mais informações sobre slots de valor de referência, consulte Como usar reservas com slots de valor de referência e de escalonamento automático.
Para desativar o compartilhamento de slots inativos e usar apenas a capacidade de slot especificada, clique em Ignorar slots inativos.
Para expandir a seção Configurações avançadas, clique na seta
.Para definir a simultaneidade do job de destino, clique no botão Substituir simultaneidade automática do job de destino e ative a opção Simultaneidade do job de destino.
O detalhamento de slots é exibido na tabela Estimativa de custo. Um resumo da reserva será exibido na tabela Resumo da capacidade.
Clique em Salvar.
A nova reserva fica visível na guia Reservas de slots.
SQL
Para criar uma reserva, use a
instrução DDL CREATE RESERVATION
.
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
CREATE RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, edition = EDITION, autoscale_max_slots = NUMBER_OF_AUTOSCALING_SLOTS);
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto de administração que é proprietário do recurso de reserva.LOCATION
: o local da reserva. Se você selecionar um local do BigQuery Omni, sua opção de edição será limitada à edição Enterprise.RESERVATION_NAME
: o nome da reservaEle precisa começar e terminar com uma letra minúscula ou um número e conter apenas letras minúsculas, números e traços.
NUMBER_OF_BASELINE_SLOTS
: o número de valor de referência de slots que serão alocados para a reserva. Não é possível definir a opçãoslot_capacity
eedition
na mesma reserva.EDITION
: a edição da reserva. A atribuição de uma reserva a uma edição inclui mudanças de recursos e preços. Para mais informações, consulte Introdução às edições do BigQuery.NUMBER_OF_AUTOSCALING_SLOTS
: o número de slots de escalonamento automático atribuídos à reserva. Isso é igual a o valor do tamanho máximo da reserva menos o número de slots de referência.
Clique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
Para criar uma reserva, use o comando bq mk
com a
sinalização --reservation
:
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --reservation \ --slots=NUMBER_OF_BASELINE_SLOTS \ --ignore_idle_slots=false \ --edition=EDITION \ --autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS \ RESERVATION_NAME
Substitua:
ADMIN_PROJECT_ID
: o ID do projetoLOCATION
: o local da reserva. Se você selecionar um local do BigQuery Omni, sua opção de edição será limitada à edição Enterprise.NUMBER_OF_BASELINE_SLOTS
: o número de slots de referência que serão alocados à reserva.RESERVATION_NAME
: o nome da reservaEDITION
: a edição da reserva. A atribuição de uma reserva a uma edição inclui mudanças de recursos e preços. Para mais informações, consulte Introdução às edições do BigQuery.NUMBER_OF_AUTOSCALING_SLOTS
: o número de slots de escalonamento automático atribuídos à reserva. Isso é igual a o valor do tamanho máximo da reserva menos o número de slots de referência.
Para informações sobre a sinalização --ignore_idle_slots
, consulte Slots inativos. O valor
padrão é false
.
Terraform
Use o
recurso
google_bigquery_reservation
.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
O exemplo a seguir cria uma reserva chamada my-reservation
:
Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.
Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
-
No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome do arquivo precisa ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o arquivo é chamado demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.
Copie o exemplo de código no
main.tf
recém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Revise a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expectativas:
terraform plan
Faça as correções necessárias na configuração.
-
Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.
Python
Atualizar reservas
É possível fazer as seguintes atualizações em uma reserva:
- Adicione ou remova slots para alterar o tamanho da reserva.
- Configure se as consultas nesta reserva usam slots inativos.
- Altere a quantidade de slots de valor de referência ou de escalonamento automático alocados para uma reserva.
- Defina a simultaneidade do job de destino.
Para alterar a edição de uma reserva, exclua primeiro a reserva e depois create uma com a edição atualizada.
Permissões necessárias
Para atualizar uma reserva, você precisa da seguinte permissão de gerenciamento de identidade e acesso (IAM, na sigla em inglês):
bigquery.reservations.update
no projeto de administração que mantém a propriedade dos compromissos.
Cada um dos seguintes papéis predefinidos do IAM inclui essa permissão:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
Para mais informações sobre os papéis do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Alterar o tamanho de uma reserva
É possível adicionar ou remover slots de uma reserva.
Console
No Console do Google Cloud, acesse a página do BigQuery.
No painel de navegação, acesse a seção Gerenciamento de capacidade.
Clique na guia Reservas de slots.
Encontre a reserva que você quer atualizar.
Expanda a opção
Ações.Clique em Editar.
Na caixa de diálogo Seletor de tamanho máximo da reserva, insira o tamanho máximo da reserva.
No campo Slots de valor de referência, insira o número de slots de valor de referência.
Para expandir a seção Configurações avançadas, clique na seta
.Para definir a simultaneidade do job de destino, clique no botão Substituir simultaneidade automática do job de destino e ative a opção Simultaneidade do job de destino.
Clique em Salvar.
SQL
Para mudar o tamanho de uma reserva, use a
instrução ALTER RESERVATION SET OPTIONS
da linguagem de definição de dados (DDL, na sigla em inglês).
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
ALTER RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` SET OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, autoscale_max_slots = NUMBER_OF_AUTOSCALING_SLOTS);
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto de administração que é proprietário do recurso de reserva.LOCATION
: o local da reserva, por exemplo,europe-west9
.RESERVATION_NAME
: o nome da reserva. Ele precisa começar e terminar com uma letra minúscula ou um número e conter apenas letras minúsculas, números e traços.NUMBER_OF_BASELINE_SLOTS
: o número de slots de referência que serão alocados para a reserva.NUMBER_OF_AUTOSCALING_SLOTS
: o número de slots de escalonamento automático atribuídos à reserva. Isso é igual a o valor do tamanho máximo da reserva menos o número de slots de referência.
Clique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
Para atualizar o tamanho de uma reserva, use o comando bq update
com a
sinalização --reservation
:
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --slots=NUMBER_OF_BASELINE_SLOTS \ --autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS \ --reservation RESERVATION_NAME
Substitua:
ADMIN_PROJECT_ID
: o ID do projetoLOCATION
: o local da reservaNUMBER_OF_BASELINE_SLOTS
: o número de slots de referência que serão alocados à reserva.RESERVATION_NAME
: o nome da reservaNUMBER_OF_AUTOSCALING_SLOTS
: o número de slots de escalonamento automático atribuídos à reserva. Isso é igual a o valor do tamanho máximo da reserva menos o número de slots de referência.
Python
Configurar se as consultas usam slots inativos
A sinalização --ignore_idle_slots
controla se as consultas em execução em uma reserva podem usar slots inativos de outras reservas. Para mais informações, consulte Slots inativos. É possível atualizar essa configuração em uma reserva existente.
Para atualizar uma reserva, use o comando bq update
com a
sinalização --reservation
. O exemplo a seguir define --ignore_idle_slots
como true
, o que significa que a reserva usará apenas slots alocados para a reserva.
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --ignore_idle_slots=true \ --reservation RESERVATION_NAME
Substitua:
ADMIN_PROJECT_ID
: o ID do projetoLOCATION
: o local da reservaRESERVATION_NAME
: o nome da reserva
Listar a configuração de slot inativo
Para listar a configuração slots de inatividade de uma reserva, faça o seguinte:
SQL
Consulte a coluna ignore_idle_slots
da
visualização INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT
.
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
SELECT reservation_name, ignore_idle_slots FROM `ADMIN_PROJECT_ID.region-LOCATION`.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT;
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto de administração que é proprietário do recurso de reserva.LOCATION
: o local das reservas
Clique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
Use o comando bq ls
com a sinalização --reservation
:
bq ls --reservation \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto de administração que é proprietário do recurso de reserva.LOCATION
: o local das reservas.
O campo ignoreIdleSlots
contém a configuração.
Excluir reservas
Quando você exclui uma reserva, qualquer job que esteja sendo executado com slots dessa reserva falhará. Para evitar erros, permita que jobs em execução sejam concluídos antes de excluir a reserva.
Permissões necessárias
Para excluir uma reserva, você precisa da seguinte permissão de gerenciamento de identidade e acesso (IAM, na sigla em inglês):
bigquery.reservations.delete
no projeto de administração que mantém a propriedade dos compromissos.
Cada um dos seguintes papéis predefinidos do IAM inclui essa permissão:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
Para mais informações sobre os papéis do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Excluir uma reserva
Console
No Console do Google Cloud, acesse a página do BigQuery.
No painel de navegação, acesse a seção Gerenciamento de capacidade.
Clique na guia Reservas.
Encontre a reserva que você quer excluir.
Expanda a opção
Ações.Clique em Excluir.
Na caixa de diálogo Excluir reserva, clique em Excluir.
SQL
Para excluir uma reserva, use a
instrução DDL DROP RESERVATION
.
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
DROP RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`;
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto de administração que é proprietário do recurso de reserva.LOCATION
: o local da reservaRESERVATION_NAME
: o ID d reserva.
Clique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
Para excluir uma reserva, use o comando bq rm
com a
sinalização --reservation
:
bq rm \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --reservation RESERVATION_NAME
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto de administração que é proprietário do recurso de reserva.LOCATION
: o local da reservaRESERVATION_NAME
: o nome da reserva
Python