Vista JOBS_TIMELINE_BY_FOLDER

A vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER contém metadados do BigQuery praticamente em tempo real por intervalo de tempo para todas as tarefas enviadas na pasta principal do projeto atual, incluindo as tarefas nas subpastas abaixo. Esta vista contém tarefas em execução e concluídas.

Autorizações necessárias

Para consultar a vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, precisa da autorização de gestão de identidade e de acesso (IAM) para a pasta principal.bigquery.jobs.listAll Cada uma das seguintes funções de IAM predefinidas inclui a autorização necessária:

  • Administrador da pasta
  • Administrador do BigQuery

Para mais informações sobre as autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.

Esquema

Quando consulta as visualizações INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*, os resultados da consulta contêm uma linha para cada segundo de execução de cada tarefa do BigQuery. Cada período começa num intervalo de um segundo inteiro e dura exatamente um segundo.

A vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_* tem o seguinte esquema:

Nome da coluna Tipo de dados Valor
period_start TIMESTAMP Hora de início deste período.
period_slot_ms INTEGER Milissegundos de intervalo consumidos neste período.
project_id STRING ID do projeto (coluna de agrupamento).
project_number INTEGER Número do projeto.
folder_numbers REPEATED INTEGER IDs numéricos das pastas que contêm o projeto, começando pela pasta que contém imediatamente o projeto, seguida da pasta que contém a pasta secundária e assim sucessivamente. Por exemplo, se `folder_numbers` for `[1, 2, 3]`, a pasta `1` contém imediatamente o projeto, a pasta `2` contém `1` e a pasta `3` contém `2`.
user_email STRING (Coluna de agrupamento) Endereço de email ou conta de serviço do utilizador que executou a tarefa.
job_id STRING ID da tarefa. Por exemplo, bquxjob_1234.
job_type STRING O tipo de trabalho. Pode ser QUERY, LOAD, EXTRACT, COPY ou null. O tipo de tarefa null indica uma tarefa interna, como a avaliação de declarações de tarefas de scripts ou a atualização de vistas materializadas.
statement_type STRING O tipo de declaração de consulta, se for válida. Por exemplo, SELECT, INSERT, UPDATE ou DELETE.
priority STRING A prioridade desta tarefa. Os valores válidos incluem INTERACTIVE e BATCH.
parent_job_id STRING ID da tarefa principal, se existir.
job_creation_time TIMESTAMP (Coluna de partição) Hora da criação desta tarefa. A partição baseia-se na hora UTC desta data/hora.
job_start_time TIMESTAMP Hora de início desta tarefa.
job_end_time TIMESTAMP Hora de fim desta tarefa.
state STRING Estado de execução da tarefa no final deste período. Os estados válidos incluem PENDING, RUNNING e DONE.
reservation_id STRING Nome da reserva principal atribuída a esta tarefa no final deste período, se aplicável.
edition STRING A edição associada à reserva atribuída a esta tarefa. Para mais informações sobre as edições, consulte o artigo Introdução às edições do BigQuery.
total_bytes_billed INTEGER Se o projeto estiver configurado para usar preços a pedido, este campo contém o total de bytes faturados para a tarefa. Se o projeto estiver configurado para usar preços de taxa fixa, não lhe é faturado o número de bytes, e este campo é apenas informativo.
total_bytes_processed INTEGER Total de bytes processados pela tarefa.
error_result RECORD Detalhes do erro (se existir) como um ErrorProto.
cache_hit BOOLEAN Se os resultados da consulta deste trabalho foram provenientes de uma cache.
period_shuffle_ram_usage_ratio FLOAT Rácio de utilização da funcionalidade Shuffle no período selecionado. O valor é 0.0 se a tarefa tiver sido executada com uma reserva que usa o dimensionamento automático e tiver zero espaços de base.
period_estimated_runnable_units INTEGER Unidades de trabalho que podem ser agendadas imediatamente neste período. Os slots adicionais para estas unidades de trabalho aceleram a sua consulta, desde que nenhuma outra consulta na reserva precise de slots adicionais.
transaction_id STRING ID da transação em que esta tarefa foi executada, se existir. (Pré-visualização)

Para garantir a estabilidade, recomendamos que liste explicitamente as colunas nas suas consultas de esquema de informações em vez de usar um caráter universal (SELECT *). A listagem explícita de colunas impede que as consultas sejam interrompidas se o esquema subjacente for alterado.

Retenção de dados

Esta vista apresenta as tarefas em execução, juntamente com o histórico de tarefas dos últimos 180 dias. Se um projeto for migrado para uma organização (quer não tenha organização ou seja migrado de uma organização diferente), as informações de tarefas anteriores à data de migração não são acessíveis através da vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, uma vez que a vista só retém dados a partir da data de migração.

Â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.JOBS_TIMELINE_BY_FOLDER 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`.

Exemplos

Os exemplos seguintes mostram como consultar a vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER.

Obtenha o número de tarefas únicas

A seguinte consulta apresenta o número de tarefas únicas 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 é 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                              |
+---------------------------+---------------------------------+

Calcule o tempo de intervalo usado

A consulta seguinte apresenta o tempo de intervalo 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 é 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                           |
+---------------------------+---------------------------------+