Vista RESERVATIONS_TIMELINE
A vista INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
mostra
intervalos de tempo dos metadados de reservas para cada projeto de administração de reservas
para cada minuto em tempo real. Além disso, a matriz per_second_details
mostra os detalhes da escala automática para cada segundo.
Autorização necessária
Para consultar a vista INFORMATION_SCHEMA.RESERVATION_TIMELINE
, 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
Quando consulta as vistas INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_*
, os resultados da consulta contêm uma linha por cada minuto de cada reserva do BigQuery nos últimos 180 dias e uma linha por cada minuto com alterações de reserva para ocorrências com mais de 180 dias. Cada período começa num intervalo de um minuto completo e dura exatamente um minuto.
A vista INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT
tem o seguinte esquema:
Nome da coluna | Tipo de dados | Valor |
---|---|---|
autoscale |
STRUCT |
Contém 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. |
ignore_idle_slots |
BOOL |
Falso se a partilha de ranhuras estiver ativada, caso contrário, verdadeiro. |
labels |
RECORD |
Matriz de etiquetas associadas à reserva. |
period_start |
TIMESTAMP |
Hora de início deste período de um minuto. |
per_second_details |
STRUCT |
Contém informações sobre a capacidade de reserva e a utilização a cada segundo. Os campos incluem o seguinte:
Se existirem alterações de dimensionamento automático ou de reserva durante este minuto, a matriz é preenchida com 60 linhas. No entanto, para reservas sem ajuste automático que permaneçam inalteradas durante este minuto, a matriz está vazia porque, caso contrário, repetiria o mesmo número 60 vezes. |
project_id |
STRING |
ID do projeto de administração de reservas. |
project_number |
INTEGER |
Número do projeto. |
reservation_id |
STRING |
Para juntar com a tabela jobs_timeline. Tem o formato project_id:location.reservation_name. |
reservation_name |
STRING |
O nome da reserva. |
slots_assigned |
INTEGER |
O número de espaços atribuídos a esta reserva. |
slots_max_assigned |
INTEGER |
A capacidade máxima de espaços para esta reserva, incluindo a partilha de espaços. Se ignore_idle_slots for verdadeiro, é o mesmo que slots_assigned . Caso contrário, é o número total de espaços em todos os compromissos de capacidade no projeto de administração. |
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 e dos recursos para esta vista:
Nome da visualização de propriedade | Âmbito do recurso | Âmbito da região |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE[_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`
.
Exemplos
Exemplo: veja a utilização total de espaços por segundo
Para executar a consulta num projeto que não seja o seu projeto predefinido, adicione o ID do projeto no seguinte formato:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
.
O exemplo seguinte mostra a utilização de slots por segundo de projetos atribuídos a
YOUR_RESERVATION_ID
em todas as tarefas:
SELECT s.start_time AS period_start, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(s.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(s.slots_max_assigned) AS estimated_slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.reservation_id = 'YOUR_RESERVATION_ID' AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start ORDER BY period_start DESC;
O resultado é semelhante ao seguinte:
+-----------------------+---------------------+--------------------------+------------------------------+ | period_start | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| 96.753 | 100 | 100 | |2021-06-08 21:33:57 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+--------------------------+------------------------------+
Exemplo: utilização de slots por reserva
O exemplo seguinte mostra a utilização de espaços por segundo para cada reserva no último dia:
SELECT s.start_time AS period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(res.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(res.slots_max_assigned) AS estimated_slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start, reservation_id ORDER BY period_start DESC, reservation_id;
O resultado é semelhante ao seguinte:
+-----------------------+----------------+---------------------+--------------------------+------------------------------+ | period_start | reservation_id | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+----------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:57 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:56 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+