Vista JOBS_TIMELINE_BY_FOLDER

La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER contiene metadatos de BigQuery casi en tiempo real por segmento temporal de todos los trabajos enviados en la carpeta principal del proyecto actual, incluidos los trabajos de las subcarpetas. Esta vista contiene tanto los trabajos en curso como los completados.

Permisos obligatorios

Para consultar la vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, necesitas el permiso bigquery.jobs.listAll de gestión de identidades y accesos (IAM) del elemento superior. Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye el permiso necesario:

  • Administrador de carpetas
  • Administrador de BigQuery

Para obtener más información sobre los permisos de BigQuery, consulta Control de acceso con gestión de identidades y accesos.

Esquema

Cuando consultas las vistas INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*, los resultados de la consulta contienen una fila por cada segundo de ejecución de cada tarea de BigQuery. Cada periodo empieza en un intervalo de un segundo y dura exactamente un segundo.

La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_* tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
period_start TIMESTAMP Hora de inicio de este periodo.
period_slot_ms INTEGER Milisegundos de ranura consumidos en este periodo.
project_id STRING ID del proyecto(columna de clustering).
project_number INTEGER Número del proyecto.
folder_numbers REPEATED INTEGER Los IDs numéricos de las carpetas que contienen el proyecto, empezando por la carpeta que contiene directamente el proyecto, seguida de la carpeta que contiene la carpeta secundaria, y así sucesivamente. Por ejemplo, si `folder_numbers` es `[1, 2, 3]`, la carpeta `1` contiene inmediatamente el proyecto, la carpeta `2` contiene la carpeta `1` y la carpeta `3` contiene la carpeta `2`.
user_email STRING (Columna de clustering) Dirección de correo o cuenta de servicio del usuario que ha ejecutado el trabajo.
job_id STRING ID del trabajo. Por ejemplo, bquxjob_1234.
job_type STRING El tipo de trabajo. Puede ser QUERY, LOAD, EXTRACT, COPY o null. El tipo de tarea null indica una tarea interna, como la evaluación de una instrucción de una tarea de secuencia de comandos o la actualización de una vista materializada.
statement_type STRING El tipo de instrucción de consulta, si es válida. Por ejemplo, SELECT, INSERT, UPDATE o DELETE.
priority STRING La prioridad de este trabajo. Los valores válidos son INTERACTIVE y BATCH.
parent_job_id STRING ID del trabajo principal (si lo hay).
job_creation_time TIMESTAMP (Columna de partición) Hora de creación de este trabajo. La partición se basa en la hora UTC de esta marca de tiempo.
job_start_time TIMESTAMP Hora de inicio de este trabajo.
job_end_time TIMESTAMP Hora de finalización de este trabajo.
state STRING Estado de ejecución del trabajo al final de este periodo. Los estados válidos son PENDING, RUNNING y DONE.
reservation_id STRING Nombre de la reserva principal asignada a este trabajo al final de este periodo, si procede.
edition STRING Edición asociada a la reserva asignada a este trabajo. Para obtener más información sobre las ediciones, consulta Introducción a las ediciones de BigQuery.
total_bytes_billed INTEGER Si el proyecto está configurado para usar los precios bajo demanda, este campo contiene el total de bytes facturados por la tarea. Si el proyecto está configurado para usar precios de tarifa plana, no se te cobrarán los bytes y este campo solo tiene carácter informativo.
total_bytes_processed INTEGER Total de bytes procesados por el trabajo.
error_result RECORD Detalles del error (si procede) como ErrorProto.
cache_hit BOOLEAN Indica si los resultados de la consulta de este trabajo procedían de una caché.
period_shuffle_ram_usage_ratio FLOAT Ratio de uso de la aleatorización en el periodo seleccionado.
period_estimated_runnable_units INTEGER Unidades de trabajo que se pueden programar inmediatamente en este periodo. Los slots adicionales para estas unidades de trabajo aceleran tu consulta, siempre que ninguna otra consulta de la reserva necesite slots adicionales.
transaction_id STRING ID de la transacción en la que se ha ejecutado este trabajo (si la hay). Vista previa

Conservación de datos

Esta vista contiene los trabajos que se están ejecutando y el historial de los últimos 180 días.

Ámbito y sintaxis

Las consultas en esta vista deben incluir un calificador de región. Si no especifica un calificador regional, los metadatos se recuperan de todas las regiones. En la siguiente tabla se explica el ámbito de la región de esta vista:

Nombre de la vista Ámbito de los recursos Ámbito de la región
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER Nivel de proyecto REGION
Sustituye lo siguiente:
  • Opcional: PROJECT_ID: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado.
  • REGION: cualquier nombre de región del conjunto de datos. Por ejemplo, `region-us`.

Ejemplos

En los siguientes ejemplos se muestra cómo consultar la vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER.

Obtener el número de tareas únicas

La siguiente consulta muestra el número de trabajos únicos que se ejecutan por minuto en la carpeta del proyecto 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;

El resultado es similar al siguiente:

+---------------------------+---------------------------------+
|  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 el tiempo de ranura utilizado

La siguiente consulta muestra el tiempo de ranura utilizado por minuto en la carpeta del proyecto 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;

El resultado es similar al siguiente:

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