Visualização JOBS_TIMELINE_BY_FOLDER
A visualização INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
contém metadados do BigQuery em tempo real por fração de tempo para todos os jobs enviados na pasta mãe do projeto atual, incluindo os jobs em subpastas abaixo dele.
Essa visualização contém
jobs em execução e concluídos.
Permissões necessárias
Para consultar a visualização INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
, você precisa
da permissão bigquery.jobs.listAll
Identity and Access Management (IAM) para a pasta
pai. Cada um dos seguintes papéis predefinidos do IAM inclui a
permissão necessária:
- Administrador de pastas
- Administrador do BigQuery
Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.
Esquema
Ao consultar as visualizações INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
, os resultados da
consulta terão uma linha para cada segundo de execução de cada job
do BigQuery. Cada período começa em um intervalo de segundo inteiro e
dura exatamente um segundo.
A visualização INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
tem o seguinte esquema:
Nome da coluna | Tipo de dados | Valor |
---|---|---|
period_start |
TIMESTAMP |
Horário de início deste período. |
period_slot_ms |
INTEGER |
Milissegundos de slot consumidos neste período. |
project_id |
STRING |
(Coluna de clustering) ID do projeto. |
project_number |
INTEGER |
Número do projeto. |
folder_numbers |
REPEATED INTEGER |
IDs de número das pastas que contêm o projeto, começando com a pasta que contém o projeto imediatamente, seguido pela pasta que contém a pasta filho e assim por diante. Por exemplo, se `folder_numbers` for `[1, 2, 3]`, a pasta `1` conterá imediatamente o projeto, a pasta `2` conterá `1` e a pasta `3` conterá ` 2". |
user_email |
STRING |
(Coluna de clustering) endereço de e-mail ou conta de serviço do usuário que executou o job. |
job_id |
STRING |
ID do job. Por exemplo, bquxjob_1234 . |
job_type |
STRING |
O tipo de job. Pode ser QUERY , LOAD ,
EXTRACT , COPY , ou null . O tipo
de job null indica um job interno, como avaliação da instrução do
job de script ou atualização da visualização materializada. |
statement_type |
STRING |
O tipo de instrução de consulta, se for válido. Por exemplo,
SELECT , INSERT , UPDATE , ou
DELETE . |
priority |
STRING |
A prioridade deste job. Os valores válidos incluem INTERACTIVE
e BATCH . |
parent_job_id |
STRING |
ID do job pai (se houver). |
job_creation_time |
TIMESTAMP |
(Coluna de particionamento) horário da criação do job. O particionamento é baseado no horário UTC desse carimbo de data/hora. |
job_start_time |
TIMESTAMP |
Horário de início deste job. |
job_end_time |
TIMESTAMP |
Horário de término deste job. |
state |
STRING |
Estado em execução do job no final deste período. Os estados válidos incluem PENDING , RUNNING , e DONE . |
reservation_id |
STRING |
Nome da reserva principal atribuída a este job no final deste período, se aplicável. |
edition |
STRING |
A edição associada à reserva atribuída a este job. Para mais informações sobre edições, consulte Introdução às edições do BigQuery. |
total_bytes_billed |
INTEGER |
Se o projeto estiver configurado para usar preços sob demanda, então esse campo conterá o total de bytes cobrados pelo job. Se o projeto estiver configurado para usar preços fixos, então você não será cobrado por bytes, e esse campo será apenas informativo. |
total_bytes_processed |
INTEGER |
Total de bytes processados pelo job. |
error_result |
RECORD |
Detalhes do erro (se houver) como um
ErrorProto.
. |
cache_hit |
BOOLEAN |
Se os resultados da consulta deste job eram de um cache. |
period_shuffle_ram_usage_ratio |
FLOAT |
Proporção de uso do embaralhamento no período selecionado. |
period_estimated_runnable_units |
INTEGER |
Unidades de trabalho que podem ser programadas imediatamente nesse período. Os slots adicionais para essas unidades de trabalho aceleram a consulta, contanto que nenhuma outra consulta na reserva precise de slots adicionais. |
transaction_id |
STRING |
ID da transação em que este job foi executado, se houver. (Visualização) |
Retenção de dados
Essa visualização contém os jobs em execução e o histórico dos últimos 180 dias.
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.JOBS_TIMELINE_BY_FOLDER |
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`
.
Exemplos
Nos exemplos a seguir, saiba como consultar a visualização INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
.
Receber o número de jobs exclusivos
A consulta a seguir exibe o número de jobs exclusivos em execução por minuto na pasta do projeto designado:
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, COUNT(DISTINCT job_id) AS unique_jobs FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f GROUP BY per_start ORDER BY per_start DESC;
O resultado será semelhante ao seguinte:
+---------------------------+---------------------------------+ | per_start | unique_jobs | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 5 | | 2019-10-10 00:03:00 UTC | 2 | | 2019-10-10 00:02:00 UTC | 3 | | 2019-10-10 00:01:00 UTC | 4 | | 2019-10-10 00:00:00 UTC | 4 | +---------------------------+---------------------------------+
Calcular o tempo de slot usado
A consulta a seguir exibe o tempo de slot usado por minuto na pasta do projeto designado:
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, SUM(period_slot_ms) AS slot_ms FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f AND reservation_id = "my reservation id" AND statement_type != "SCRIPT" GROUP BY per_start ORDER BY per_start DESC;
O resultado será semelhante ao seguinte:
+---------------------------+---------------------------------+ | per_start | slot_ms | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 500 | | 2019-10-10 00:03:00 UTC | 1000 | | 2019-10-10 00:02:00 UTC | 3000 | | 2019-10-10 00:01:00 UTC | 4000 | | 2019-10-10 00:00:00 UTC | 4000 | +---------------------------+---------------------------------+