Compre e faça a gestão de compromissos de slots antigos

A API BigQuery Reservation permite-lhe comprar slots dedicados (denominados compromissos), criar pools de slots (denominados reservas) e atribuir projetos, pastas e organizações a essas reservas.

Uma consolidação de capacidade é uma compra de capacidade de computação do BigQuery durante um período mínimo. A compra de um compromisso de capacidade é opcional quando cria uma reserva com uma edição, mas pode proporcionar poupanças de custos.

Os compromissos são um recurso regional. Não é possível usar compromissos comprados numa região ou em várias regiões noutras regiões ou em várias regiões. Não é possível mover compromissos entre regiões ou entre regiões e multirregiões.

Ative a API Reservations

A API BigQuery Reservation é diferente da API BigQuery existente e tem de ser ativada de forma independente. Para mais informações, consulte Ativar e desativar APIs.

  • O nome da API é "API BigQuery Reservations"
  • O ponto final da API BigQuery Reservation é bigqueryreservation.googleapis.com.

Ative a API.

Comprar slots

Para reservar capacidade durante um período mínimo, pode comprar um compromisso de capacidade. Isto oferece um desconto e permite poupar nos custos. Para mais informações acerca dos custos específicos, consulte os preços do BigQuery.

Autorizações necessárias

Para criar um compromisso de capacidade, precisa da seguinte autorização de gestão de identidade e acesso (IAM):

Cada uma das seguintes funções de IAM predefinidas inclui esta autorização:

  • BigQuery Admin
  • BigQuery Resource Admin

Para mais informações sobre as funções de IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.

Crie uma consolidação de capacidade

Os compromissos são um recurso regional. Não é possível usar compromissos comprados numa região ou em várias regiões noutras regiões ou em várias regiões. Não é possível mover compromissos entre regiões ou entre regiões e multirregiões.

Consola

  1. Na Google Cloud consola, aceda à página do BigQuery.

    Aceda ao BigQuery

  2. No menu de navegação, clique em Gestão da capacidade.

  3. Clique em Criar compromisso.

  4. Em Configurar:

    1. Selecione a localização.
    2. Na secção Modelo de capacidade, selecione o modelo de capacidade.
    3. Selecione a Duração do compromisso, que especifica o seu plano de compromisso.
    4. Se estiver a comprar um compromisso anual, selecione o plano de renovação que quer que entre em vigor quando o compromisso expirar:

      1. Não renovar e converter num compromisso mensal (predefinição). Quando o compromisso anual expira, é convertido num compromisso mensal.
      2. Renovação anual. Quando o compromisso anual expira, é renovado por mais um ano como compromisso anual.
      3. Não renove e converta em horários flexíveis. Quando o compromisso anual expira, é convertido num compromisso de slots flexíveis.

      Para mais informações, consulte o artigo Compromissos de espaços.

    5. Introduza o Número de vagas que quer comprar.

    6. Clicar em Seguinte.

  5. Reveja a estimativa do Custo da sua compra.

  6. Em Confirmar e enviar:

    1. Introduza CONFIRMAR para confirmar a compra.
    2. Clique em Comprar para comprar os slots.
  7. Para ver o compromisso, clique em Ver compromissos de espaço. Depois de o aprovisionamento da capacidade ser feito, o compromisso de capacidade pedido tem o estado verde.

Quando compra capacidade pela primeira vez, é criada uma reserva default.

SQL

Para criar um compromisso de capacidade, use a CREATE CAPACITY declaração DDL.

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

    CREATE CAPACITY
      `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID`
    OPTIONS (
      slot_count = NUMBER_OF_SLOTS,
      plan = 'PLAN_TYPE');

    Substitua o seguinte:

    • ADMIN_PROJECT_ID: o ID do projeto do projeto de administração que vai manter a propriedade deste compromisso
    • LOCATION: a localização do compromisso
    • COMMITMENT_ID: o ID do compromisso

      Tem de ser exclusivo do projeto e da localização. Tem de 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 a comprar
    • PLAN_TYPE: o tipo de plano>, como FLEX, MONTHLY ou ANNUAL.

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Use o comando bq mk com a flag --capacity_commitment para comprar espaços.

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --capacity_commitment=true \
    --plan=PLAN_TYPE \
    --slots=NUMBER_OF_SLOTS

Substitua o seguinte:

Veja as consolidações de capacidade

Autorizações necessárias

Para ver compromissos, precisa da seguinte autorização de gestão de identidade e de acesso (IAM):

Cada uma das seguintes funções de IAM predefinidas inclui esta autorização:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor
  • BigQuery Resource Viewer
  • BigQuery User

Para mais informações sobre as funções de IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.

Veja as consolidações de capacidade por projeto

Para ver as suas consolidações de capacidade por projeto:

Consola

Não é possível ver compromissos de capacidade antigos através da Google Cloud consola.

SQL

Para ver os compromissos de um projeto de administração, consulte a vista INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT.

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaraçã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 o seguinte:

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Use o comando bq ls com a flag --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 o seguinte:

Atualizar consolidações de capacidade

Pode fazer as seguintes atualizações a uma consolidação de capacidade:

  • Renove um compromisso existente.
  • Converter um compromisso num plano de compromisso com uma duração mais longa.
  • Dividir um compromisso em dois compromissos.
  • Unir dois compromissos num único compromisso.

Autorizações necessárias

Para atualizar os compromissos de capacidade, precisa da seguinte autorização de gestão de identidade e de acesso (IAM):

Cada uma das seguintes funções de IAM predefinidas inclui esta autorização:

  • BigQuery Admin
  • BigQuery Resource Admin

Para mais informações sobre as funções de IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.

Renove um compromisso

Os compromissos anuais têm um plano de renovação, que especifica quando cria ou converte para um compromisso anual. Pode alterar o plano de renovação do compromisso anual em qualquer altura antes da data de fim do compromisso.

Consola

Pode alterar o seu plano de renovação para um compromisso anual da seguinte forma:

  1. Na Google Cloud consola, aceda à página do BigQuery.

    Aceda ao BigQuery

  2. No menu de navegação, clique em Gestão da capacidade.

  3. Clique no separador Compromissos de horários.

  4. Encontre o compromisso que quer editar.

  5. Clique em Ações e, de seguida, 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 comando bq update com a flag --capacity_commitment e a flag --renewal_plan.

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --renewal_plan=PLAN_TYPE \
    --capacity_commitment=true \
    COMMITMENT_ID

Substitua o seguinte:

Converta um compromisso numa duração mais longa

Pode optar por converter o seu compromisso num tipo de compromisso de duração mais longa em qualquer altura:

  • Pode converter o seu compromisso de slots flexíveis num compromisso mensal ou anual.
  • Pode converter o seu compromisso mensal num compromisso anual.

Assim que atualizar o seu compromisso, é-lhe cobrada a tarifa associada ao novo plano, e a data de fim é reposta.

Para converter um compromisso, use o comando bq update com a flag --plan.

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --plan=PLAN_TYPE \
    --renewal_plan=RENEWAL_PLAN \
    --capacity_commitment=true \
    COMMITMENT_ID

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização do compromisso
  • PLAN_TYPE: o tipo de plano, como FLEX, MONTHLY ou ANNUAL.
  • RENEWAL_PLAN: o plano de renovação

    Isto aplica-se apenas se o PLAN_TYPE for ANNUAL. Se o PLAN_TYPE for MONTHLY, omita esta flag.

  • COMMITMENT_ID: o ID do compromisso

    Para obter o ID, consulte o artigo Veja os compromissos comprados.

Divida um compromisso

Pode dividir o seu compromisso em dois compromissos. Isto pode ser útil se quiser renovar parte de um compromisso. Por exemplo, se tiver um compromisso anual de 1000 espaços, pode dividir 300 espaços num novo compromisso, deixando 700 espaços no compromisso original. Em seguida, pode renovar 700 vagas à taxa anual e converter 300 vagas em vagas flexíveis após a data de conclusão.

Quando divide um compromisso, o novo compromisso tem o mesmo plano e a mesma data de fim do compromisso que o compromisso original.

Consola

  1. Na Google Cloud consola, aceda à página do BigQuery.

    Aceda ao BigQuery

  2. No menu de navegação, clique em Gestão da capacidade.

  3. Clique no separador Compromissos de horários.

  4. Selecione o compromisso que quer dividir.

  5. Clique em Dividir.

  6. Na página Dividir compromisso, use o controlo de deslize Configurar divisão para selecionar quantos espaços vão para cada divisão, em incrementos de 100 espaços.

  7. Clique em Dividir para dividir o compromisso. O novo compromisso é apresentado no separador Compromissos de espaço.

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 o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização do compromisso
  • SLOTS_TO_SPLIT: o número de horários a dividir do compromisso original num novo compromisso
  • COMMITMENT_ID: o ID do compromisso

    Para obter o ID, consulte o artigo Veja os compromissos comprados.

Una dois compromissos

Pode unir vários compromissos num só. Todos os compromissos de união têm de ser do mesmo tipo (FLEX, MONTHLY, ANNUAL ou THREE_YEAR). A data de conclusão do compromisso combinado é a data de conclusão máxima dos compromissos originais. Se algum dos compromissos tiver uma data de fim anterior, estes são prolongados até à data posterior, e é cobrado um valor proporcional por esses espaços.

Consola

  1. Na Google Cloud consola, aceda à página do BigQuery.

    Aceda ao BigQuery

  2. No menu de navegação, clique em Gestão da capacidade.

  3. Clique no separador Compromissos de horários.

  4. Selecione os compromissos que quer unir.

  5. Clique em Unir.

  6. Na página Unir compromissos, reveja os detalhes da união e clique em Unir. O novo compromisso de união é apresentado no separador Compromissos de espaço.

bq

Para unir dois compromissos num só, use o comando bq update:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --merge=true \
    --capacity_commitment=true \
    COMMITMENT1,COMMITMENT2

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização dos compromissos
  • COMMITMENT1: o primeiro compromisso a unir
  • COMMITMENT2: o segundo compromisso a unir

Elimine um compromisso

Pode eliminar um compromisso de capacidade se a respetiva data de fim estiver no passado. A data de conclusão do compromisso é apresentada na Google Cloud consola. Antes de eliminar um compromisso, certifique-se de que existem blocos não atribuídos suficientes. Caso contrário, tem de diminuir o número de vagas numa reserva ou remover as reservas na totalidade.

Autorizações necessárias

Para eliminar compromissos de capacidade, precisa da seguinte autorização de gestão de identidade e de acesso (IAM):

Cada uma das seguintes funções de IAM predefinidas inclui esta autorização:

  • BigQuery Admin
  • BigQuery Resource Admin

Para mais informações sobre as funções de IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.

Eliminar uma consolidação de capacidade

Consola

Para eliminar um compromisso de capacidade, conclua os seguintes passos:

  1. Na Google Cloud consola, aceda à página do BigQuery.

    Aceda ao BigQuery

  2. No menu de navegação, clique em Gestão da capacidade.

  3. Clique no separador Compromissos de horários.

  4. Na lista pendente Localização, selecione a localização adequada.

  5. Encontre o compromisso que quer eliminar.

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

  7. Clique em Eliminar.

  8. Escreva "REMOVER" e clique em Continuar.

SQL

Para eliminar um compromisso de capacidade, use a DROP CAPACITY declaração DDL.

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. No editor de consultas, introduza a seguinte declaração:

    DROP CAPACITY
      `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID`;

    Substitua o seguinte:

  3. Clique em Executar.

Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.

bq

Para eliminar um compromisso de capacidade, use o comando bq rm com a flag --capacity_commitment:

bq rm \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --capacity_commitment=true \
    COMMITMENT_ID

Substitua o seguinte:

Resolução de problemas de consolidações de capacidade

Esta secção descreve os passos de resolução de problemas que podem ser úteis se encontrar problemas ao usar as reservas do BigQuery.

Os slots comprados estão pendentes

Os slots estão sujeitos à capacidade disponível. Quando compra compromissos de slots e o BigQuery os atribui, a coluna Estado apresenta uma marca de verificação. Se o BigQuery não conseguir atribuir imediatamente os slots pedidos, a coluna Estado permanece pendente. Pode ter de aguardar várias horas até que os slots fiquem disponíveis. Se precisar de acesso a horários disponíveis mais cedo, experimente o seguinte:

  1. Elimine o compromisso pendente.
  2. Compre um novo compromisso para um número menor de espaços. Consoante a capacidade, o compromisso mais pequeno pode ficar ativo imediatamente.
  3. Compre os restantes espaços como um compromisso separado. Estas posições podem ser apresentadas como pendentes na coluna Estado, mas geralmente ficam ativas em algumas horas.
  4. Opcional: quando ambos os compromissos estão disponíveis, pode uni-los num único compromisso, desde que tenha comprado o mesmo plano para ambos.

Se um compromisso de horário falhar ou demorar muito tempo a ser concluído, considere usar temporariamente os preços a pedido. Com esta solução, pode ter de executar consultas críticas num projeto diferente que não esteja atribuído a nenhuma reserva ou pode ter de remover completamente a atribuição do projeto.