Comprar e gerenciar compromissos de slot legados
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.
Um compromisso de capacidade é uma compra de capacidade de computação do BigQuery por um período mínimo. Comprar um compromisso de capacidade é opcional na criação de uma reserva com uma edição, mas pode oferecer economia de custos.
Compromissos são um recurso regional. Compromissos comprados em uma região ou multirregião não podem ser usados em outra região ou multirregião. Não é possível mover os compromissos entre regiões ou entre regiões e multirregiões.
Ativar a API Reservations
A API BigQuery Reservation é diferente da API do BigQuery atual e precisa ser ativada de forma independente. Para mais informações, consulte Como ativar e desativar APIs.
- O nome da API é "API BigQuery Reservations".
- O endpoint da API BigQuery Reservation é
bigqueryreservation.googleapis.com
.
Comprar slots
Para reservar capacidade por um período mínimo de tempo, é possível adquirir um compromisso de capacidade. Isso dá um desconto e economiza dinheiro. Para mais informações sobre os custos específicos, consulte Preços do BigQuery.
Permissões necessárias
Para criar um compromisso de capacidade, você precisa da seguinte permissão de gerenciamento de identidade e acesso (IAM):
bigquery.capacityCommitments.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 Admin
BigQuery Resource Admin
Para mais informações sobre os papéis do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Criar um compromisso de capacidade
Compromissos são um recurso regional. Compromissos comprados em uma região ou multirregião não podem ser usados em outra região ou multirregião. Não é possível mover os compromissos entre regiões ou entre regiões e multirregiõ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.
Clique em Criar compromisso.
Em Configurar:
- Selecione o local.
- Na seção Modelo de capacidade, escolha o modelo de capacidade.
- Selecione a Duração do compromisso, que especifica seu plano de compromisso.
Se você estiver comprando um compromisso anual, selecione o plano de renovação que quer entrar em vigor quando o compromisso expirar:
- Não renovar e converter para um compromisso mensal (padrão) Quando o compromisso anual expirar, ele será convertido em um compromisso mensal.
- Renovar anualmente Quando o compromisso anual expirar, ele será renovado por mais um ano como compromisso anual.
- Não renovar e converter para slots flexíveis Quando o compromisso anual expirar, ele será convertido em um compromisso de slots flexíveis.
Para mais informações, consulte Compromissos.
Digite o Número de slots que você quer comprar.
Clique em Próxima.
Analise a estimativa de custo da compra.
Em Confirmar e enviar:
- Digite CONFIRMAR para confirmar a compra.
- Clique em Comprar para comprar os slots.
Para visualizar o compromisso, clique em Visualizar compromissos de slot. Depois que a capacidade for provisionada, o compromisso de capacidade solicitado exibirá um status verde.
Na primeira vez que você comprar capacidade, uma reserva default
será criada.
SQL
Para excluir um compromisso de capacidade, use a
instrução DDL CREATE CAPACITY
.
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
CREATE CAPACITY `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID` OPTIONS ( slot_count = NUMBER_OF_SLOTS, plan = 'PLAN_TYPE');
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto de administração que vai manter a propriedade desse compromisso.LOCATION
: o local do compromisso.COMMITMENT_ID
: o ID do compromissoEle precisa ser exclusivo do projeto e do local. 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_SLOTS
O número de slots para compra.PLAN_TYPE
: o tipo de plano, comoFLEX
,MONTHLY
ouANNUAL
Clique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
Use o comando bq mk
com a
sinalização--capacity_commitment
para comprar slots.
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --capacity_commitment=true \ --plan=PLAN_TYPE \ --slots=NUMBER_OF_SLOTS
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto de administração que vai manter a propriedade desse compromisso.LOCATION
: o local do compromisso.PLAN_TYPE
: o tipo de plano, comoFLEX
,MONTHLY
ouANNUAL
.NUMBER_OF_SLOTS
: o número de slots para compra.
Ver compromissos de capacidade
Permissões necessárias
Para ver os compromissos, é preciso ter a seguinte permissão de gerenciamento de identidade e acesso (IAM):
bigquery.capacityCommitments.list
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
BigQuery Resource Viewer
BigQuery User
Para mais informações sobre os papéis do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Ver compromissos de capacidade por projeto
Para visualizar seus compromissos de capacidade por projeto:
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 Compromissos de slot. Os compromissos de capacidade são listados na tabela em Compromissos.
SQL
Para ver os compromissos de um projeto de administração, consulte a
visualização INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT
.
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
SELECT capacity_commitment_id FROM `region-LOCATION`.INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT WHERE project_id = 'ADMIN_PROJECT_ID' AND slot_count = 100;
Substitua:
LOCATION
: o local dos compromissosADMIN_PROJECT_ID
: o ID do projeto do projeto de administração que tem os compromissos
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--capacity_commitment
para listar os compromissos de um projeto de administração.
bq ls \ --capacity_commitment=true \ --location=LOCATION \ --project_id=ADMIN_PROJECT_ID
Substitua:
LOCATION
: o local dos compromissosADMIN_PROJECT_ID
: o ID do projeto de administração que contém os compromissos.
Atualizar compromissos de capacidade
É possível fazer as seguintes atualizações em um compromisso de capacidade:
- Renovar um compromisso atual.
- Converta um compromisso em um plano de compromisso com uma duração mais longa.
- Dividir um compromisso em dois compromissos.
- Mesclar dois compromissos em um único compromisso.
Permissões necessárias
Para atualizar os compromissos de capacidade, você precisa da seguinte permissão de gerenciamento de identidade e acesso (IAM):
bigquery.capacityCommitments.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
Para mais informações sobre os papéis do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Atualizar um compromisso
Os compromissos anuais têm um plano de renovação, que você especifica ao criar ou converter em um compromisso anual. É possível alterar seu plano de renovação do compromisso anual a qualquer momento antes da data de término do compromisso.
Console
É possível alterar seu plano de renovação de um compromisso anual da seguinte maneira:
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 Compromissos de slot.
Localize o compromisso que você quer editar.
Clique em
Ações e selecione a opção Editar plano de renovação.Selecione o novo plano de renovação.
bq
Para alterar a escolha do plano de renovação de um compromisso anual, use o
bq update
comando
com o
--capacity_commitment
bandeira
e a--renewal_plan
bandeira de dados.
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --renewal_plan=PLAN_TYPE \ --capacity_commitment=true \ COMMITMENT_ID
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto de administração que vai manter a propriedade desse compromisso.LOCATION
: o local do compromisso.PLAN_TYPE
: o tipo de plano, comoFLEX
,MONTHLY
ouANNUAL
.COMMITMENT_ID
: o ID do compromissoPara conseguir o ID, consulte Ver compromissos adquiridos.
Converter um compromisso para que tenha uma duração maior
Você pode optar por converter seu compromisso em um tipo de maior duração a qualquer momento:
- É possível converter seu compromisso de slots flexíveis em um compromisso mensal ou anual.
- É possível converter seu compromisso mensal em um compromisso anual.
Assim que você atualizar o compromisso, será cobrado pela taxa de associação ao novo plano e a data de término será redefinida.
Para converter um compromisso, use o
comandobq update
com a
sinalização--plan
.
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --plan=PLAN_TYPE \ --renewal_plan=RENEWAL_PLAN \ --capacity_commitment=true \ COMMITMENT_ID
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto;LOCATION
: o local do compromisso.PLAN_TYPE
: o tipo de plano, comoFLEX
,MONTHLY
ouANNUAL
.RENEWAL_PLAN
: o plano de renovaçãoIsso se aplicará somente se
PLAN_TYPE
forANNUAL
. SePLAN_TYPE
forMONTHLY
, omita essa sinalização.COMMITMENT_ID
: o ID do compromissoPara conseguir o ID, consulte Ver compromissos adquiridos.
Dividir um compromisso
É possível dividir seu compromisso em dois compromissos. Isso pode ser útil se você quiser renovar parte de um compromisso. Por exemplo, se você tiver um compromisso anual de 1.000 slots, poderá dividir 300 slots em um novo compromisso, deixando 700 slots no compromisso original. Assim, é possível renovar 700 slots na taxa anual e converter 300 slots em slots flexíveis após a data de término.
Quando você divide um compromisso, o novo tem o mesmo plano e a mesma data de término do compromisso original.
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 Compromissos de slot.
Selecione o compromisso que você quer dividir.
Clique em Dividir.
Na página Dividir compromisso, use o controle deslizante Configurar divisão para selecionar quantos slots são colocados em cada divisão, em incrementos de 100 slots.
Clique em Dividir para dividir o compromisso. O novo compromisso é listado na guia Compromissos de slot.
bq
Para dividir compromissos, use o comando bq update
.
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --split \ --slots=SLOTS_TO_SPLIT \ --capacity_commitment=true \ COMMITMENT_ID
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto;LOCATION
: o local do compromisso.SLOTS_TO_SPLIT
é o número de slots a serem divididos do compromisso original em um novo compromisso.COMMITMENT_ID
: o ID do compromissoPara conseguir o ID, consulte Ver compromissos adquiridos.
Mesclar dois compromissos
É possível mesclar vários compromissos em um compromisso. Os compromissos mesclados
precisam ser do mesmo tipo (FLEX
, MONTHLY
, ANNUAL
ou THREE_YEAR
). A data
de término do compromisso combinado é a data de término máxima dos compromissos
originais. Se algum dos compromissos tiver uma data de término anterior,
eles serão estendidos para a data posterior e você será cobrado por um valor proporcional
para esses slots.
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 Compromissos de slot.
Selecione os compromissos que você quer mesclar.
Clique em Merge.
Na página Mesclar compromissos, revise os detalhes da mesclagem e clique em Mesclar. O novo compromisso mesclado está listado na guia Compromissos de slot.
bq
Para mesclar dois compromissos em um compromisso, use o comando bq update
:
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --merge=true \ --capacity_commitment=true \ COMMITMENT1,COMMITMENT2
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto;LOCATION
: o local dos compromissosCOMMITMENT1
: o primeiro compromisso a ser mesclado.COMMITMENT2
: o segundo compromisso a ser mesclado
Excluir um compromisso
É possível excluir um compromisso de capacidade se a data de término estiver no passado. A data de término do compromisso é mostrada no Console do Cloud. Antes de excluir um compromisso, verifique se há slots suficientes não alocados. Caso não haja, será preciso diminuir o número de slots em uma reserva ou remover totalmente as reservas.
Permissões necessárias
Para excluir compromissos de capacidade, você precisa da seguinte permissão de gerenciamento de identidade e acesso (IAM):
bigquery.capacityCommitments.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
Para mais informações sobre os papéis do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Como excluir um compromisso de capacidade
Console
Para excluir uma confirmação de capacidade, execute as seguintes etapas:
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 Compromissos de slot.
Na lista suspensa Local, selecione o local.
Localize o compromisso que você quer excluir.
Expanda a opção
Ações.Clique em Excluir.
Digite "REMOVE" e clique em Continuar.
SQL
Para excluir um compromisso de capacidade, use a
instrução DDL DROP CAPACITY
.
No Console do Google Cloud, acesse a página BigQuery.
No editor de consultas, digite a seguinte instrução:
DROP CAPACITY `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID`;
Substitua:
ADMIN_PROJECT_ID
: o projeto que é proprietário do compromisso.LOCATION
: o local do compromisso.COMMITMENT_ID
: o ID do compromissoPara conseguir o ID, consulte Ver compromissos adquiridos.
Clique em
Executar.
Para mais informações sobre como executar consultas, acesse Executar uma consulta interativa.
bq
Para excluir um compromisso de capacidade, use o comando bq rm
com a
sinalização --capacity_commitment
:
bq rm \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --capacity_commitment=true \ COMMITMENT_ID
Substitua:
ADMIN_PROJECT_ID
: o ID do projeto;LOCATION
: o local do compromisso.COMMITMENT_ID
: o ID do compromisso que você quer excluirPara conseguir o ID, consulte Ver compromissos adquiridos.
Como resolver problemas de compromissos de capacidade
Nesta seção, descrevemos etapas de solução de problemas que podem ser úteis se você tiver problemas ao usar o BigQuery Reservations.
Slots comprados pendentes
Os slots estão sujeitos à capacidade disponível. Quando você compra compromissos de slot e o BigQuery os aloca, a coluna Status mostra uma marca de verificação. Se o BigQuery não conseguir alocar os slots solicitados imediatamente, a coluna Status permanecerá pendente. Talvez seja necessário aguardar várias horas para que os slots fiquem disponíveis. Se você precisar de acesso aos slots mais cedo, tente o seguinte:
- Excluir o compromisso pendente.
- Adquira um novo compromisso para um número menor de slots. Dependendo da capacidade, o compromisso menor pode ficar ativo imediatamente.
- Compre os slots restantes como um compromisso separado. Esses slots podem ser exibidos como pendentes na coluna Status, mas geralmente ficam ativos em algumas horas.
- Opcional: quando ambos os compromissos estiverem disponíveis, é possível mesclá-los em um único compromisso, desde que você tenha comprado o mesmo plano para ambos.
Se um compromisso de slot falhar ou demorar muito para ser concluído, considere usar o preço sob demanda temporariamente. Com essa solução, pode ser necessário executar consultas críticas em um projeto diferente que não está atribuído a nenhuma reserva, ou talvez seja preciso remover completamente a atribuição do projeto.