Faça a gestão das reservas de cargas de trabalho

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.

As reservas permitem-lhe atribuir um número dedicado de vagas a uma carga de trabalho. Por exemplo, pode não querer que uma carga de trabalho de produção concorra com cargas de trabalho de teste por vagas. Pode criar uma reserva denominada prod e atribuir as suas cargas de trabalho de produção a esta reserva. Para mais informações, consulte o artigo Compreenda as reservas.

Crie reservas

Autorizações necessárias

Para criar uma reserva, 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 Resource Editor
  • 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 reserva com horários dedicados

Selecione uma das seguintes opções:

Consola

  1. Na Cloud de Confiance 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 reserva.

  4. No campo Nome da reserva, introduza um nome para a reserva.

  5. Na lista Localização, selecione a localização. Se selecionar uma localização do BigQuery Omni, a sua opção de edição está limitada à edição Enterprise.

  6. Na lista Edição, selecione a edição. As funcionalidades da edição do BigQuery, como o dimensionamento automático, só estão disponíveis numa edição. Para mais informações, consulte o artigo Introdução às edições do BigQuery.

  7. Na lista do seletor de tamanho máximo da reserva, selecione o tamanho máximo da reserva.

  8. Opcional: no campo Intervalos de base, introduza o número de intervalos de base para a reserva.

    O número de espaços de ajuste de escala automático disponíveis é determinado subtraindo o valor de Espaços de base ao Tamanho máximo da reserva. Por exemplo, se criar uma reserva com 100 espaços base e um tamanho máximo de reserva de 400, a sua reserva tem 300 espaços de dimensionamento automático. Para mais informações sobre os horários de base, consulte o artigo Usar reservas com horários de base e de escalabilidade automática.

  9. Para desativar a partilha de espaços inativos e usar apenas a capacidade de espaço especificada, clique no botão Ignorar espaços inativos.

  10. Para expandir a secção Definições avançadas, clique na seta de expansão .

  11. Opcional: para definir a simultaneidade de tarefas alvo, clique no botão ativar/desativar Substituir simultaneidade de tarefas alvo automática e introduza a Simultaneidade de tarefas alvo.

  12. A discriminação dos espaços é apresentada na tabela Estimativa de custos. É apresentado um resumo da reserva na tabela Resumo da capacidade.

  13. Clique em Guardar.

A nova reserva fica visível no separador Reservas de horários.

SQL

Para criar uma reserva, use a CREATE RESERVATION declaração DDL.

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

    Aceda ao BigQuery

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

    • ADMIN_PROJECT_ID: o ID do projeto do projeto de administração que detém o recurso de reserva
    • LOCATION: a localização da reserva. Se selecionar uma localização do BigQuery Omni, a opção de edição está limitada à Enterprise Edition.
    • RESERVATION_NAME: o nome da reserva

      O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.

    • NUMBER_OF_BASELINE_SLOTS: o número de base de espaços a atribuir à reserva. Não pode definir a opção slot_capacity e a opção edition na mesma reserva.
    • EDITION: a edição da reserva. A atribuição de uma reserva a uma edição implica alterações de funcionalidades e preços. Para mais informações, consulte o artigo Introdução às edições do BigQuery.
    • NUMBER_OF_AUTOSCALING_SLOTS: o número de espaços de escala automática atribuídos à reserva. Isto é igual ao valor do tamanho máximo da reserva menos o número de espaços base.

  3. Clique em Executar.

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

bq

Para criar uma reserva, use o comando bq mk com a flag --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 \
    --max_slots=MAXIMUM_NUMBER_OF_SLOTS
    --scaling_mode=SCALING_MODE
    RESERVATION_NAME

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização da reserva. Se selecionar uma localização do BigQuery Omni, a sua opção de edição está limitada à edição Enterprise.
  • NUMBER_OF_BASELINE_SLOTS: o número de espaços base a atribuir à reserva

  • RESERVATION_NAME: o nome da reserva. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.

  • EDITION: a edição da reserva. A atribuição de uma reserva a uma edição implica alterações de funcionalidades e preços. Para mais informações, consulte o artigo Introdução às edições do BigQuery.

  • NUMBER_OF_AUTOSCALING_SLOTS: o número de espaços de escala automática atribuídos à reserva. Isto é igual ao valor do tamanho máximo da reserva menos o número de espaços base. Não é possível configurar esta opção com as flags --max_slots ou --scaling_mode.

  • MAXIMUM_NUMBER_OF_SLOTS: o número máximo de espaços que a reserva pode consumir. Tem de configurar este valor com a flag --scaling_mode (Pré-visualização).

  • SCALING_MODE: o modo de dimensionamento da reserva. As opções são ALL_SLOTS, IDLE_SLOTS_ONLY ou AUTOSCALE_ONLY. Tem de configurar este valor com a flag --scaling_mode (Pré-visualização).

Para obter informações sobre a flag --ignore_idle_slots, consulte o artigo Espaços inativos. O valor predefinido é false.

Terraform

Use o recurso google_bigquery_reservation.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

O exemplo seguinte cria uma reserva com o nome my-reservation:

resource "google_bigquery_reservation" "default" {
  name              = "my-reservation"
  location          = "us-central1"
  slot_capacity     = 100
  edition           = "ENTERPRISE"
  ignore_idle_slots = false # Use idle slots from other reservations
  concurrency       = 0     # Automatically adjust query concurrency based on available resources
  autoscale {
    max_slots = 200 # Allow the reservation to scale up to 300 slots (slot_capacity + max_slots) if needed
  }
}

Para aplicar a configuração do Terraform num Cloud de Confiance projeto, conclua os passos nas secções seguintes.

Prepare o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o Cloud de Confiance projeto predefinido onde quer aplicar as suas configurações do Terraform.

    Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.

Prepare o diretório

Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).

  1. No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o ficheiro é denominado main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.

    Copie o exemplo de código para o main.tf criado recentemente.

    Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.

  3. Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
  4. Guarde as alterações.
  5. Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
    terraform init

    Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção -upgrade:

    terraform init -upgrade

Aplique as alterações

  1. Reveja a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expetativas:
    terraform plan

    Faça correções à configuração conforme necessário.

  2. Aplique a configuração do Terraform executando o seguinte comando e introduzindo yes no comando:
    terraform apply

    Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).

  3. Abra o seu Cloud de Confiance projeto para ver os resultados. Na Cloud de Confiance consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.

Python

Instale o pacote google-cloud-bigquery-reservation antes de usar este exemplo de código. Construa um ReservationServiceClient. Descreva a reserva que quer criar com um Reservation. Crie a reserva com o método create_reservation.
# TODO(developer): Set project_id to the project ID containing the
# reservation.
project_id = "your-project-id"

# TODO(developer): Set location to the location of the reservation.
# See: https://cloud.google.com/bigquery/docs/locations for a list of
# available locations.
location = "US"

# TODO(developer): Set reservation_id to a unique ID of the reservation.
reservation_id = "sample-reservation"

# TODO(developer): Set slot_capicity to the number of slots in the
# reservation.
slot_capacity = 100

# TODO(developer): Choose a transport to use. Either 'grpc' or 'rest'
transport = "grpc"

# ...

from google.cloud.bigquery_reservation_v1.services import reservation_service
from google.cloud.bigquery_reservation_v1.types import (
    reservation as reservation_types,
)

reservation_client = reservation_service.ReservationServiceClient(
    transport=transport
)

parent = reservation_client.common_location_path(project_id, location)

reservation = reservation_types.Reservation(slot_capacity=slot_capacity)
reservation = reservation_client.create_reservation(
    parent=parent,
    reservation=reservation,
    reservation_id=reservation_id,
)

print(f"Created reservation: {reservation.name}")

Crie uma reserva previsível

Antes de criar uma reserva com um número máximo de vagas, tem de ativar primeiro a equidade baseada em reservas.

Ative a equidade baseada em reservas

Para ativar a equidade baseada em reservas, defina a enable_reservation_based_fairness sinalização como true.

Para atualizar a equidade baseada em reservas num projeto, precisa da autorização bigquery.config.update no projeto que mantém a propriedade das reservas. A função BigQuery Admin predefinida inclui esta autorização.

Para mais informações sobre como atualizar a configuração predefinida de um projeto, consulte o artigo Faça a gestão das definições de configuração.

ALTER PROJECT `PROJECT_NAME` SET OPTIONS (
    `region-LOCATION.enable_reservation_based_fairness`= true);

Substitua o seguinte:

Crie uma reserva previsível

Para criar uma reserva previsível com um número máximo de horários disponíveis, selecione uma das seguintes opções:

Consola

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

    Aceda ao BigQuery

  2. No painel de navegação, aceda à secção Gestão de capacidade e, de seguida, clique em Criar reserva.

  3. No campo Nome da reserva, introduza um nome para a reserva.

  4. Na lista Localização, selecione a localização. Se selecionar uma localização do BigQuery Omni, a sua opção de edição está limitada à edição Enterprise.

  5. Na lista Edição, selecione a edição. O dimensionamento automático só está disponível numa edição. Para mais informações, consulte o artigo Compreenda as edições do BigQuery.

  6. Na lista do seletor de tamanho máximo da reserva, selecione o tamanho máximo da reserva.

  7. Opcional: no campo Intervalos de base, introduza o número de intervalos de base para a reserva.

    O número de espaços de ajuste de escala automático disponíveis é determinado subtraindo o valor de Espaços de base ao Tamanho máximo da reserva. Por exemplo, se criar uma reserva com 100 espaços base e um tamanho máximo de reserva de 400, a sua reserva tem 300 espaços de dimensionamento automático. Para mais informações sobre os horários de base, consulte o artigo Usar reservas com horários de base e de escalabilidade automática.

  8. Para desativar a partilha de espaços inativos e usar apenas a capacidade de espaço especificada, clique no botão Ignorar espaços inativos.

  9. Para expandir a secção Definições avançadas, clique na seta de expansão .

    1. Na lista Como usar espaços vazios?, selecione a opção de configuração.
  10. A discriminação dos espaços é apresentada na tabela Estimativa de custos. É apresentado um resumo da reserva na tabela Resumo da capacidade.

  11. Clique em Guardar.

A nova reserva fica visível no separador Reservas de horários.

bq

Para criar uma reserva previsível, use o comando bq mk com a flag --reservation e defina o valor de max_slots e scaling_mode:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation \
    --slots=NUMBER_OF_BASELINE_SLOTS \
    --ignore_idle_slots=false \
    --edition=EDITION \
    --max_slots=MAXIMUM_NUMBER_OF_SLOTS \
    --scaling_mode=SCALING_MODE
    RESERVATION_NAME

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização da reserva. Se selecionar uma localização do BigQuery Omni, a sua opção de edição está limitada à edição Enterprise.
  • NUMBER_OF_BASELINE_SLOTS: o número de espaços base a atribuir à reserva

  • RESERVATION_NAME: o nome da reserva

  • EDITION: a edição da reserva. A atribuição de uma reserva a uma edição implica alterações de funcionalidades e preços. Para mais informações, consulte o artigo Introdução às edições do BigQuery.

  • MAXIMUM_NUMBER_OF_SLOTS: o número máximo de espaços que a reserva pode consumir. Este valor tem de ser configurado com a flag --scaling_mode.

  • SCALING_MODE: SCALING_MODE: o modo de dimensionamento da reserva. As opções são ALL_SLOTS, IDLE_SLOTS_ONLY ou AUTOSCALE_ONLY. Este valor tem de ser configurado com a flag max_slots. Este valor tem de estar alinhado com a flag ignore_idle_slots. Para ver detalhes, consulte o artigo Previsibilidade das reservas.

Para obter informações sobre a flag --ignore_idle_slots, consulte o artigo Espaços inativos. O valor predefinido é false.

SQL

Para criar uma reserva previsível, use a declaração DDL CREATE RESERVATION.

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

    Aceda ao BigQuery

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

    CREATE RESERVATION
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`
    OPTIONS (
      slot_capacity = NUMBER_OF_BASELINE_SLOTS,
      edition = EDITION,
      ignore_idle_slots=IGNORE_IDLE_SLOTS
      max_slots = MAX_NUMBER_OF_SLOTS,
      scaling_mode = SCALING_MODE);

    Substitua o seguinte:

    • ADMIN_PROJECT_ID: o ID do projeto do projeto de administração que detém o recurso de reserva.
    • LOCATION: a localização da reserva. Se selecionar uma localização do BigQuery Omni, a opção de edição está limitada à Enterprise Edition.
    • RESERVATION_NAME: o nome da reserva. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.

    • NUMBER_OF_BASELINE_SLOTS: o número de base de espaços a atribuir à reserva. Não pode definir a opção slot_capacity e a opção edition na mesma reserva.
    • EDITION: a edição da reserva. A atribuição de uma reserva a uma edição implica alterações de funcionalidades e preços. Para mais informações, consulte o artigo Introdução às edições do BigQuery.
    • IGNORE_IDLE_SLOTS: se a reserva usa slots inativos ou não. O valor predefinido é false.
    • MAX_NUMBER_OF_SLOTS: o número máximo de espaços que a reserva pode consumir. Este valor tem de ser configurado com a opção scaling_mode.
    • SCALING_MODE: o modo de dimensionamento da reserva. As opções são ALL_SLOTS, IDLE_SLOTS_ONLY ou AUTOSCALE_ONLY. Este valor tem de ser configurado com a opção max_slots. Este valor tem de estar alinhado com a opção ignore_idle_slots. Para ver detalhes, consulte o artigo Previsibilidade das reservas.

  3. Clique em Executar.

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

Para saber mais sobre as reservas previsíveis, consulte o artigo Reservas previsíveis.

Atualize reservas

Pode fazer as seguintes atualizações a uma reserva:

  • Altere o tamanho da reserva adicionando ou removendo espaços.
  • Configure se as consultas nesta reserva usam espaços livres.
  • Altere a quantidade de espaços de base ou de dimensionamento automático atribuídos a uma reserva.
  • Defina a concorrência de tarefas alvo.

Para alterar a edição de uma reserva, primeiro elimine a reserva e, em seguida, crie uma reserva com a edição atualizada.

Autorizações necessárias

Para atualizar uma reserva, 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

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

Altere o tamanho de uma reserva

Pode adicionar ou remover horários de uma reserva existente.

Consola

  1. Na Cloud de Confiance 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 Reservas de horários.

  4. Encontre a reserva que quer atualizar.

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

  6. Clique em Edit.

  7. Na caixa de diálogo Seletor de tamanho máximo da reserva, introduza o tamanho máximo da reserva.

  8. No campo Intervalos base, introduza o número de intervalos base.

  9. Para expandir a secção Definições avançadas, clique na seta de expansão .

  10. Opcional: para definir a simultaneidade de tarefas alvo, clique no botão ativar/desativar Substituir simultaneidade de tarefas alvo automática e introduza a Simultaneidade de tarefas alvo.

  11. Clique em Guardar.

SQL

Para alterar o tamanho de uma reserva, use a declaração de linguagem de definição de dados (LDD) ALTER RESERVATION SET OPTIONS.

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

    Aceda ao BigQuery

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

    • ADMIN_PROJECT_ID: o ID do projeto do projeto de administração que detém o recurso de reserva
    • LOCATION: a localização da reserva, por exemplo, europe-west9.
    • RESERVATION_NAME: o nome da reserva. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.

    • NUMBER_OF_BASELINE_SLOTS: o número de espaços de base a atribuir à reserva.
    • NUMBER_OF_AUTOSCALING_SLOTS: o número de espaços de escala automática atribuídos à reserva. Isto é igual ao valor do tamanho máximo da reserva menos o número de espaços base.

  3. Clique em Executar.

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

bq

Para atualizar o tamanho de uma reserva, use o comando bq update com a flag --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 o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização da reserva
  • NUMBER_OF_BASELINE_SLOTS: o número de espaços base a atribuir à reserva
  • RESERVATION_NAME: o nome da reserva. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.
  • NUMBER_OF_AUTOSCALING_SLOTS: o número de espaços de escala automática atribuídos à reserva. Isto é igual ao valor do tamanho máximo da reserva menos o número de espaços base.

Python

Instale o pacote google-cloud-bigquery-reservation antes de usar este exemplo de código. Construa um ReservationServiceClient. Descreva as propriedades atualizadas com uma Reservation e a propriedade FieldMask.paths. Atualize a reserva com o método update_reservation.
# TODO(developer): Set project_id to the project ID containing the
# reservation.
project_id = "your-project-id"

# TODO(developer): Set location to the location of the reservation.
# See: https://cloud.google.com/bigquery/docs/locations for a list of
# available locations.
location = "US"

# TODO(developer): Set reservation_id to a unique ID of the reservation.
reservation_id = "sample-reservation"

# TODO(developer): Set slot_capicity to the new number of slots in the
# reservation.
slot_capacity = 50

# TODO(developer): Choose a transport to use. Either 'grpc' or 'rest'
transport = "grpc"

# ...

from google.cloud.bigquery_reservation_v1.services import reservation_service
from google.cloud.bigquery_reservation_v1.types import (
    reservation as reservation_types,
)
from google.protobuf import field_mask_pb2

reservation_client = reservation_service.ReservationServiceClient(
    transport=transport
)

reservation_name = reservation_client.reservation_path(
    project_id, location, reservation_id
)
reservation = reservation_types.Reservation(
    name=reservation_name,
    slot_capacity=slot_capacity,
)
field_mask = field_mask_pb2.FieldMask(paths=["slot_capacity"])
reservation = reservation_client.update_reservation(
    reservation=reservation, update_mask=field_mask
)

print(f"Updated reservation: {reservation.name}")
print(f"\tslot_capacity: {reservation.slot_capacity}")

Configure se as consultas usam espaços livres

O sinalizador --ignore_idle_slots controla se as consultas executadas numa reserva podem usar horários disponíveis de outras reservas. Para mais informações, consulte o artigo Espaços inativos. Pode atualizar esta configuração numa reserva existente.

Para atualizar uma reserva, use o comando bq update com a flag --reservation . O exemplo seguinte define --ignore_idle_slots como true, o que significa que a reserva só usa espaços atribuídos à reserva.

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --ignore_idle_slots=true \
    --reservation RESERVATION_NAME

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização da reserva
  • RESERVATION_NAME: o nome da reserva. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.

Liste a configuração do espaço inativo

Para apresentar a definição de horários disponíveis para uma reserva, faça o seguinte:

SQL

Consulte a coluna ignore_idle_slots da vista INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT.

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

    Aceda ao BigQuery

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

    SELECT
      reservation_name,
      ignore_idle_slots
    FROM
      `ADMIN_PROJECT_ID.region-LOCATION`.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT;

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

bq ls --reservation \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION

Substitua o seguinte:

O campo ignoreIdleSlots contém a definição de configuração.

Elimine reservas

Se eliminar uma reserva, todas as tarefas em execução que usem intervalos dessa reserva falham. Para evitar erros, permita que os trabalhos em execução sejam concluídos antes de eliminar a reserva.

Autorizações necessárias

Para eliminar uma reserva, 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

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

Elimine uma reserva

Consola

  1. Na Cloud de Confiance 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 Reservas.

  4. Encontre a reserva que quer eliminar.

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

  6. Clique em Eliminar.

  7. Na caixa de diálogo Eliminar reserva, clique em Eliminar.

SQL

Para eliminar uma reserva, use a DROP RESERVATION declaração DDL.

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

    Aceda ao BigQuery

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

    DROP RESERVATION
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`;

    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 uma reserva, use o comando bq rm com a flag --reservation:

bq rm \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation RESERVATION_NAME

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto do projeto de administração que detém o recurso de reserva
  • LOCATION: a localização da reserva
  • RESERVATION_NAME: o nome da reserva. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.

Python

Instale o pacote google-cloud-bigquery-reservation antes de usar este exemplo de código. Construa um ReservationServiceClient. Elimine a reserva com o método delete_reservation.
# TODO(developer): Set project_id to the project ID containing the
# reservation.
project_id = "your-project-id"

# TODO(developer): Set location to the location of the reservation.
# See: https://cloud.google.com/bigquery/docs/locations for a list of
# available locations.
location = "US"

# TODO(developer): Set reservation_id to a unique ID of the reservation.
reservation_id = "sample-reservation"

# TODO(developer): Choose a transport to use. Either 'grpc' or 'rest'
transport = "grpc"

# ...

from google.cloud.bigquery_reservation_v1.services import reservation_service

reservation_client = reservation_service.ReservationServiceClient(
    transport=transport
)
reservation_name = reservation_client.reservation_path(
    project_id, location, reservation_id
)
reservation_client.delete_reservation(name=reservation_name)

print(f"Deleted reservation: {reservation_name}")

Controle o acesso às reservas

Pode controlar que utilizadores têm acesso a reservas específicas. Para um utilizador substituir uma reserva na respetiva consulta, tem de ter a autorização reservations.use nessa reserva.

Autorizações necessárias

Para receber a autorização de que precisa para especificar uma reserva específica para o seu trabalho, peça ao seu administrador que lhe conceda a função de IAM de Editor de recursos (roles/bigquery.resourceEditor) no recurso de reserva. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém a autorização reservations.use , que é necessária para especificar uma reserva específica para o seu trabalho.

Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.

Controle o acesso a uma reserva

Para gerir o acesso a um recurso de reserva específico, use o comando bq set-iam-policy.

Para gerir o acesso a vários recursos de reserva, use a Cloud de Confiance consola para conceder a função de editor de recursos do BigQuery no projeto, na pasta ou na organização. Quando conceder a função, use uma condição do IAM para permitir o acesso aos recursos de reserva quando as condições especificadas forem cumpridas.

Para controlar o acesso às reservas, faça uma das seguintes ações:

Consola

Na Cloud de Confiance consola, pode permitir o acesso a vários recursos de reserva através de uma condição.

  1. Na Cloud de Confiance consola, aceda à página IAM.

    Aceder ao IAM

  2. Selecione um projeto, uma pasta ou uma organização.

  3. Para conceder a função bigquery.resourceEditor a um principal que tenha uma função nos recursos de reserva:

    1. No separador Vista por diretores, navegue até ao diretor adequado ou use a opção Filtrar para encontrar o diretor.

    2. Clique em Editar principal.

    3. Na página Atribuir funções, clique em Adicionar funções.

    4. No campo Pesquisar funções, introduza bigquery.resourceEditor.

    5. Selecione a opção Editor de recursos do BigQuery nos resultados da pesquisa e, de seguida, clique em Aplicar.

    6. Clique em Guardar.

  4. Em alternativa, para conceder a função bigquery.resourceEditor a um principal que não tenha uma função nos recursos de reserva:

    1. Clique em Conceder acesso.

    2. Na página Adicionar responsáveis, no campo Novos responsáveis, introduza o identificador do responsável, por exemplo, //iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com.

    3. Clique em Adicionar funções.

    4. No campo Pesquisar funções, introduza bigquery.resourceEditor.

    5. Selecione a opção Editor de recursos do BigQuery nos resultados da pesquisa e, de seguida, clique em Aplicar.

    6. Na caixa Editor de recursos do BigQuery, clique em Adicionar condição.

    7. Na página Adicionar condição:

      1. Introduza valores nos campos Título e Descrição.

      2. No criador de condições, adicione a sua condição. Por exemplo, para adicionar uma condição que conceda a função a todos os nomes de reservas que terminem com /reservation1, para Tipo de condição, escolha Nome, para Operador, escolha Termina com e, para Valor, introduza /reservation1.

      3. Clique em Guardar.

  5. Clique em Guardar.

bq

Na ferramenta de linhas de comando bq, pode conceder acesso a um recurso de reserva individual.

Para conceder acesso a uma reserva, use o comando bq set-iam-policy:

bq set-iam-policy --reservation RESOURCE FILE_NAME

Substitua o seguinte:

  • RESOURCE: o identificador da reserva. Por exemplo, project1:US.reservation1.
  • FILE_NAME: o ficheiro que contém a política no formato JSON. O formato deve seguir a estrutura da política IAM para políticas de autorização. Por exemplo:

    {
      "bindings": [
        {
          "members": [
            "user:my-user@example.com"
          ],
          "role": "roles/bigquery.resourceEditor"
        }
      ],
      "etag": "BwUjMhCsNvY=",
      "version": 1
    }

Para mais informações sobre o IAM, consulte o artigo Faça a gestão do acesso a outros recursos.

Dê prioridade a espaços livres com grupos de reservas

Para pedir apoio técnico ou enviar feedback sobre esta funcionalidade, contacte bigquery-wlm-feedback@google.com.

Pode controlar que reservas têm acesso prioritário a horários disponíveis criando um grupo de reservas. As reservas num grupo de reservas partilham entre si as vagas disponíveis antes de ficarem disponíveis para outras reservas no projeto.

Antes de criar um grupo de reservas, tem de ativar primeiro a equidade baseada em reservas.

Autorizações necessárias

Para obter as autorizações de que precisa para atualizar uma reserva específica de modo a definir o grupo de reservas, peça ao seu administrador que lhe conceda a função de IAM de editor de reservas (roles/bigquery.reservationEditor) no recurso de reserva. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Crie um grupo de reservas

Para criar um grupo de reservas:

bq

Para criar uma reserva, use o comando bq mk com a flag --reservation:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --alpha=reservation_groups \
    --reservation_group \
    RESERVATION_GROUP_NAME

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização da reserva.
  • RESERVATION_GROUP_NAME: o nome do grupo de reservas. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.

Adicione uma reserva a um grupo de reservas

Para adicionar uma reserva a um grupo de reservas, atualize a propriedade reservation_group da reserva:

bq

Para atualizar a reserva e definir o grupo de reservas, use o comando bq update com a flag --reservation:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --alpha=reservation_groups \
    --reservation_group_name=RESERVATION_GROUP_NAME \
    --reservation RESERVATION_NAME

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização da reserva
  • RESERVATION_GROUP_NAME: o nome do grupo de reservas. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.
  • RESERVATION_NAME: o nome da reserva. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.

Apresentar as reservas que têm um grupo de reservas

Para apresentar as informações do grupo de reservas das suas reservas, faça o seguinte:

bq

Para listar as reservas e incluir as informações do grupo de reservas, use o comando bq ls com as flags --reservation e --alpha=reservation_groups:

bq ls \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --alpha=reservation_groups \
    --reservation

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização da reserva

Remova uma reserva de um grupo de reservas

Para remover uma reserva de um grupo de reservas, atualize a propriedade reservation_group da reserva para a string vazia:

bq

Para remover a reserva do grupo de reservas, use o comando bq update com a flag --reservation:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --alpha=reservation_groups \
    --reservation_group_name="" \
    --reservation RESERVATION_NAME

Substitua o seguinte:

  • ADMIN_PROJECT_ID: o ID do projeto
  • LOCATION: a localização da reserva
  • NUMBER_OF_BASELINE_SLOTS: o número de espaços base a atribuir à reserva
  • RESERVATION_NAME: o nome da reserva. O nome só pode conter carateres alfanuméricos em minúsculas ou traços, tem de começar por uma letra e não pode terminar com um traço. O comprimento máximo é de 64 carateres.

Para saber mais sobre os grupos de reservas, consulte o artigo Grupos de reservas.

Resolver problemas

Pode encontrar os seguintes erros ao criar ou atualizar uma reserva:

Erro: Max reservation size can only be configured in multiples of 50, except when covered by excess commitments.
Erro: Baseline slots can only be configured in multiples of 50, except when covered by excess commitments.
Os espaços são sempre dimensionados automaticamente para um múltiplo de 50. O aumento da escala baseia-se na utilização real e é arredondado para o incremento de 50 espaços mais próximo. Quando não existe um compromisso ou se o compromisso não conseguir cobrir os aumentos, os espaços de base e de dimensionamento automático só podem ser aumentados em múltiplos de 50.

Se reservation size - baseline slots não for um múltiplo de 50, não é possível aumentar a escala da reserva até ao tamanho máximo de reservas, o que resulta neste erro.

Resolução:

  • Compre mais compromissos de capacidade para cobrir os aumentos de ranhuras.
  • Escolha um valor de referência e um número máximo de horários disponíveis que sejam múltiplos de 50.