Vista RESERVAS

A vista INFORMATION_SCHEMA.RESERVATIONS contém uma lista quase em tempo real de todas as reservas atuais no projeto de administração. Cada linha representa uma reserva única e atual. Uma reserva atual é uma reserva que não foi eliminada. Para mais informações sobre as reservas, consulte o artigo Introdução às reservas.

Autorização necessária

Para consultar a vista INFORMATION_SCHEMA.RESERVATIONS, precisa da autorização de gestão de identidade e de acesso (IAM) no projeto.bigquery.reservations.list Cada uma das seguintes funções de IAM predefinidas inclui a autorização necessária:

  • Administrador de recursos do BigQuery (roles/bigquery.resourceAdmin)
  • Editor de recursos do BigQuery (roles/bigquery.resourceEditor)
  • Visualizador de recursos do BigQuery (roles/bigquery.resourceViewer)
  • Utilizador do BigQuery (roles/bigquery.user)
  • Administrador do BigQuery (roles/bigquery.admin)

Para mais informações acerca das autorizações do BigQuery, consulte o artigo Funções e autorizações do IAM do BigQuery.

Esquema

A vista INFORMATION_SCHEMA.RESERVATIONS tem o seguinte esquema:

Nome da coluna Tipo de dados Valor
ddl STRING A declaração DDL usada para criar esta reserva.
project_id STRING ID do projeto de administração.
project_number INTEGER Número do projeto de administração.
reservation_name STRING Nome da reserva facultado pelo utilizador.
ignore_idle_slots BOOL Se for falso, qualquer consulta que use esta reserva pode usar espaços ociosos não usados de outros compromissos de capacidade.
slot_capacity INTEGER Base da reserva.
target_job_concurrency INTEGER O número de consultas de destino que podem ser executadas em simultâneo, que é limitado pelos recursos disponíveis. Se for zero, este valor é calculado automaticamente com base nos recursos disponíveis.
autoscale STRUCT

Informações sobre a capacidade de ajuste automático da reserva. Os campos incluem o seguinte:

  • current_slots: o número de espaços adicionados à reserva pelo ajuste automático.
  • max_slots: o número máximo de espaços que podem ser adicionados à reserva através do ajuste automático da escala.
edition STRING A edição associada a esta reserva. Para mais informações sobre as edições, consulte o artigo Introdução às edições do BigQuery.
primary_location STRING A localização atual da réplica principal da reserva. Este campo só é definido para reservas que usam a funcionalidade de recuperação de desastres gerida.
secondary_location STRING A localização atual da réplica secundária da reserva. Este campo só é definido para reservas que usam a funcionalidade de recuperação de desastres gerida.
original_primary_location STRING A localização onde a reserva foi criada originalmente.
labels RECORD Matriz de etiquetas associadas à reserva.
max_slots INTEGER O número máximo de espaços que esta reserva pode usar, que inclui espaços de base (slot_capacity), espaços inativos (se ignore_idle_slots for falso) e espaços de dimensionamento automático. Este campo é especificado pelos utilizadores para usar a funcionalidade de previsibilidade de reservas.
scaling_mode STRING O modo de dimensionamento da reserva, que determina como a reserva é dimensionada a partir da base até max_slots. Este campo é especificado pelos utilizadores para usar a funcionalidade de previsibilidade de reservas.

Âmbito e sintaxe

As consultas nesta vista têm de incluir um qualificador de região. Se não especificar um qualificador regional, os metadados são obtidos de todas as regiões. A tabela seguinte explica o âmbito da região para esta vista:

Nome da visualização de propriedade Âmbito do recurso Âmbito da região
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_BY_PROJECT] Nível do projeto REGION
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Google Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido.
  • REGION: qualquer nome da região do conjunto de dados. Por exemplo, `region-us`.

Junção entre as vistas de reservas e as vistas de tarefas

As visualizações de tarefas contêm a coluna reservation_id. Se a sua tarefa foi executada num projeto com uma reserva atribuída, reservation_id segue este formato: reservation-admin-project:reservation-location.reservation-name.

Para juntar as visualizações de reservas e as visualizações de tarefas, pode juntar a coluna de visualizações de tarefas reservation_id e as colunas de visualizações de reservas project_id e reservation_name. O exemplo seguinte mostra um exemplo de utilização da cláusula JOIN entre a reserva e as visualizações de tarefas.

Exemplo

O exemplo seguinte mostra a utilização de espaços, a capacidade de espaços e a reserva atribuída para um projeto com uma atribuição de reserva, na última hora. A utilização de slots é indicada em unidades de milissegundos de slots por segundo.

WITH
  job_data AS (
  SELECT
    job.period_start,
    job.reservation_id,
    job.period_slot_ms,
    job.job_id,
    job.job_type
  FROM
    `my-project.region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE AS job
  WHERE
    job.period_start > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR))
SELECT
  reservation.reservation_name AS reservation_name,
  job.period_start,
  reservation.slot_capacity,
  job.period_slot_ms,
  job.job_id,
  job.job_type
FROM
  job_data AS job
INNER JOIN
  `reservation-admin-project.region-us`.INFORMATION_SCHEMA.RESERVATIONS AS reservation
ON
  (job.reservation_id = CONCAT(reservation.project_id, ":", "US", ".", reservation.reservation_name));

O resultado é semelhante ao seguinte:

+------------------+---------------------+---------------+----------------+------------------+----------+
| reservation_name |    period_start     | slot_capacity | period_slot_ms |           job_id | job_type |
+------------------+---------------------+---------------+----------------+------------------+----------+
| my_reservation   | 2021-04-30 17:30:54 |           100 |          11131 | bquxjob_66707... | QUERY    |
| my_reservation   | 2021-04-30 17:30:55 |           100 |          49978 | bquxjob_66707... | QUERY    |
| my_reservation   | 2021-04-30 17:30:56 |           100 |           9038 | bquxjob_66707... | QUERY    |
| my_reservation   | 2021-04-30 17:30:57 |           100 |          17237 | bquxjob_66707... | QUERY    |

Esta consulta usa a vista RESERVATIONS para obter informações de reservas. Se as reservas tiverem sido alteradas na última hora, a coluna reservation_slot_capacity pode não estar correta.

A consulta junta RESERVATIONS com JOBS_TIMELINE para associar os intervalos de tempo de tarefas às informações de reserva.