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.

Ativar API.

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):

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

  1. No Console do Google Cloud, acesse a página do BigQuery.

    Ir para o BigQuery

  2. No painel de navegação, acesse a seção Gerenciamento de capacidade.

  3. Clique em Criar compromisso.

  4. Em Configurar:

    1. Selecione o local.
    2. Na seção Modelo de capacidade, escolha o modelo de capacidade.
    3. Selecione a Duração do compromisso, que especifica seu plano de compromisso.
    4. Se você estiver comprando um compromisso anual, selecione o plano de renovação que quer entrar em vigor quando o compromisso expirar:

      1. Não renovar e converter para um compromisso mensal (padrão) Quando o compromisso anual expirar, ele será convertido em um compromisso mensal.
      2. Renovar anualmente Quando o compromisso anual expirar, ele será renovado por mais um ano como compromisso anual.
      3. 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.

    5. Digite o Número de slots que você quer comprar.

    6. Clique em Próxima.

  5. Analise a estimativa de custo da compra.

  6. Em Confirmar e enviar:

    1. Digite CONFIRMAR para confirmar a compra.
    2. Clique em Comprar para comprar os slots.
  7. 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.

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. 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 compromisso

      Ele 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_SLOTSO número de slots para compra.
    • PLAN_TYPE: o tipo de plano, como FLEX, MONTHLY ou ANNUAL

  3. 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, como FLEX, MONTHLY ou ANNUAL.
  • 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):

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

  1. No Console do Google Cloud, acesse a página do BigQuery.

    Ir para o BigQuery

  2. No painel de navegação, acesse a seção Gerenciamento de capacidade.

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

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. 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:

  3. 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:

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):

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:

  1. No console do Google Cloud, acesse a página do BigQuery.

    Ir para o BigQuery

  2. No painel de navegação, acesse a seção Gerenciamento de capacidade.

  3. Clique na guia Compromissos de slot.

  4. Localize o compromisso que você quer editar.

  5. Clique em Ações e selecione a opção Editar plano de renovação.

  6. 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:

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, como FLEX, MONTHLY ou ANNUAL.
  • RENEWAL_PLAN: o plano de renovação

    Isso se aplicará somente se PLAN_TYPE for ANNUAL. Se PLAN_TYPE for MONTHLY, omita essa sinalização.

  • COMMITMENT_ID: o ID do compromisso

    Para 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

  1. No Console do Google Cloud, acesse a página do BigQuery.

    Ir para o BigQuery

  2. No painel de navegação, acesse a seção Gerenciamento de capacidade.

  3. Clique na guia Compromissos de slot.

  4. Selecione o compromisso que você quer dividir.

  5. Clique em Dividir.

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

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

    Para 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

  1. No Console do Google Cloud, acesse a página do BigQuery.

    Ir para o BigQuery

  2. No painel de navegação, acesse a seção Gerenciamento de capacidade.

  3. Clique na guia Compromissos de slot.

  4. Selecione os compromissos que você quer mesclar.

  5. Clique em Merge.

  6. 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 compromissos
  • COMMITMENT1: 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):

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:

  1. No console do Google Cloud, acesse a página do BigQuery.

    Ir para o BigQuery

  2. No painel de navegação, acesse a seção Gerenciamento de capacidade.

  3. Clique na guia Compromissos de slot.

  4. Na lista suspensa Local, selecione o local.

  5. Localize o compromisso que você quer excluir.

  6. Expanda a opção Ações.

  7. Clique em Excluir.

  8. Digite "REMOVE" e clique em Continuar.

SQL

Para excluir um compromisso de capacidade, use a instrução DDL DROP CAPACITY.

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. 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 compromisso

      Para conseguir o ID, consulte Ver compromissos adquiridos.

  3. 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 excluir

    Para 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:

  1. Excluir o compromisso pendente.
  2. Adquira um novo compromisso para um número menor de slots. Dependendo da capacidade, o compromisso menor pode ficar ativo imediatamente.
  3. 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.
  4. 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.