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

  • 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                           |
    +---------------------------+---------------------------------+