Visualização de RESERVAS
A visualização 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 única reserva atual. Uma reserva atual é uma reserva que não foi excluída. Para mais informações sobre reservas, consulte Introdução às reservas.
Permissão necessária
Para consultar a visualização INFORMATION_SCHEMA.RESERVATIONS
, você precisa
da permissão bigquery.reservations.list
do Identity and Access Management (IAM) para o
projeto.
Cada um dos seguintes papéis predefinidos do IAM inclui a permissão necessária:
roles/bigquery.resourceAdmin
roles/bigquery.resourceEditor
roles/bigquery.resourceViewer
roles/bigquery.user
roles/bigquery.admin
Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.
Esquema
A visualização INFORMATION_SCHEMA.RESERVATIONS
tem o seguinte esquema:
Nome da coluna | Tipo de dados | Valor |
---|---|---|
ddl |
STRING |
A instrução DDL usada para criar essa reserva. |
project_id |
STRING |
ID do projeto de administração. |
project_number |
INTEGER |
Número do projeto de administração. |
reservation_name |
STRING |
Nome de reserva fornecido pelo usuário. |
ignore_idle_slots |
BOOL |
Se for falso, qualquer consulta que usa essa reserva poderá usar slots ociosos de outros compromissos de capacidade. |
slot_capacity |
INTEGER |
Valor de referência da reserva. |
target_job_concurrency |
INTEGER |
O número desejado de consultas que podem ser executadas simultaneamente, limitado pelos recursos disponíveis. Se for zero, esse valor será calculado automaticamente com base nos recursos disponíveis. |
autoscale |
STRUCT |
Informações sobre a capacidade de escalonamento automático da reserva. Os campos incluem:
|
edition |
STRING |
A edição associada a esta reserva. Para mais informações sobre edições, consulte Introdução às edições do BigQuery. |
Escopo e sintaxe
As consultas nessa visualização precisam incluir um qualificador de região. Se você não especificar um qualificador regional, os metadados serão recuperados de todas as regiões. A tabela a seguir explica o escopo da região dessa visualização:
Nome da visualização | Escopo do recurso | Escopo da região |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_BY_PROJECT] |
Nível do projeto | REGION |
Opcional: PROJECT_ID
: o ID do seu
projeto do Google Cloud. Se não for especificado, o projeto padrão será usado.
REGION
: qualquer nome da região do conjunto de dados.
Por exemplo, `region-us`
.
Como mesclar as visualizações de reserva e de job
As visualizações de job contêm a coluna reservation_id
. Se o job for executado em um projeto com uma reserva atribuída a ele, reservation_id
seguirá este formato: reservation-admin-project:reservation-location.reservation-name
.
Para mesclar entre as visualizações de reserva e de job, é possível mesclar entre a coluna de visualizações de jobreservation_id
e as colunas de visualizações de reserva.
project_id
e reservation_name
de dados. O exemplo a seguir mostra um uso da cláusula JOIN
entre a reserva e as visualizações do job.
Exemplo
O exemplo a seguir mostra o uso do slot, a capacidade do slot e a reserva atribuída para um projeto com uma atribuição de reserva na última hora. O uso do slot é fornecido em unidades de milissegundos de slot 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));
A resposta será semelhante a:
+------------------+---------------------+---------------+----------------+------------------+----------+
| 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 |
Essa consulta usa a visualização RESERVATIONS
para acessar informações
de reserva. Caso as reservas tenham sido alteradas na última hora, a coluna
reservation_slot_capacity
talvez seja imprecisa.
A consulta une RESERVATIONS
a
JOBS_TIMELINE
para
associar as frações de tempo do job às informações de reserva.