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