Vista de JOBS_TIMELINE_BY_FOLDER
La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
contiene metadatos de BigQuery casi en tiempo real por fragmento de tiempo para todos los trabajos enviados en la carpeta superior del proyecto actual, incluidos los trabajos en subcarpetas que contiene.
Esta vista contiene trabajos completados y en ejecución.
Permisos necesarios
A fin de consultar la vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
, necesitas el permiso bigquery.jobs.listAll
de Identity and Access Management (IAM) para la carpeta superior. Cada uno de los siguientes roles predefinidos de IAM incluye el permiso requerido:
- Administrador de carpetas
- Administrador de BigQuery
Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.
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 trabajo de BigQuery. Cada período comienza en un intervalo de un segundo y dura un segundo exacto.
La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
tiene el siguiente esquema:
Nombre de la columna | Tipo de datos | Valor |
---|---|---|
period_start |
TIMESTAMP |
Es la hora de inicio de este período. |
period_slot_ms |
INTEGER |
Son los milisegundos de ranura consumidos en este período. |
project_id |
STRING |
Es el ID del proyecto (columna de agrupamiento en clústeres). |
project_number |
INTEGER |
Es el número del proyecto. |
folder_numbers |
REPEATED INTEGER |
Numere los IDs de las carpetas que contienen el proyecto, comenzando con la carpeta que contiene inmediatamente 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 “1” y la carpeta “3” contiene “2”. |
user_email |
STRING |
Es la dirección de correo electrónico o la cuenta de servicio del usuario que ejecutó el trabajo (columna de agrupamiento en clústeres). |
job_id |
STRING |
Es el ID del trabajo. Por ejemplo, bquxjob_1234 . |
job_type |
STRING |
Es el tipo de trabajo. Puede ser QUERY , LOAD , EXTRACT , COPY o null . El tipo de trabajo null indica un trabajo interno, como la evaluación de la declaración del trabajo de secuencia de comandos o la actualización de la vista materializada. |
statement_type |
STRING |
Es el tipo de declaración de consulta, si es válido. Por ejemplo, SELECT , INSERT , UPDATE o DELETE . |
priority |
STRING |
La prioridad de este trabajo. Los valores válidos incluyen INTERACTIVE y BATCH . |
parent_job_id |
STRING |
ID del trabajo superior, si hay alguno. |
job_creation_time |
TIMESTAMP |
Es la hora de creación de este trabajo (columna de partición). La partición se basa en la hora UTC de esta marca de tiempo. |
job_start_time |
TIMESTAMP |
Es la hora de inicio de este trabajo. |
job_end_time |
TIMESTAMP |
Es la hora de finalización de este trabajo. |
state |
STRING |
Es estado de ejecución del trabajo al final de este período. Los estados válidos incluyen PENDING , RUNNING y DONE . |
reservation_id |
STRING |
Es el nombre de la reserva principal asignada a este trabajo al final de este período, si corresponde. |
edition |
STRING |
Es la edición asociada con 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 precios según demanda, este campo contiene el total de bytes facturados para el trabajo. Si el proyecto está configurado para usar precios de tasa fija, no se te facturará por los bytes y este campo solo es informativo. |
total_bytes_processed |
INTEGER |
Es el total de bytes procesados por el trabajo. |
error_result |
RECORD |
Son los detalles del error (si hay alguno), como
ErrorProto.
. |
cache_hit |
BOOLEAN |
Indica si los resultados de la consulta de este trabajo provienen de una caché. |
period_shuffle_ram_usage_ratio |
FLOAT |
Proporción de uso aleatorio en el período seleccionado. |
period_estimated_runnable_units |
INTEGER |
Unidades de trabajo que se pueden programar de inmediato en este período. Las ranuras adicionales para estas unidades de trabajo aceleran tu consulta, siempre que ninguna otra consulta en la reserva necesite ranuras adicionales. |
transaction_id |
STRING |
ID de la transacción en la que se ejecutó este trabajo, si corresponde. (Vista previa) |
Retención de datos
Esta vista contiene los trabajos que se están ejecutando y el historial de trabajos de los últimos 180 días.
Permiso y sintaxis
Las consultas realizadas a esta vista deben incluir un calificador de región. Si no especificas un calificador regional, los metadatos se recuperan de todas las regiones. En la siguiente tabla, se explica el permiso de la región para esta vista:
Nombre de la vista | Permiso del recurso | Permiso de la región |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER |
Nivel de proyecto | REGION |
Opcional: PROJECT_ID
: el ID del proyecto de Google Cloud. 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
.
Obtén la cantidad de trabajos únicos
En la siguiente consulta, se muestra la cantidad 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 | +---------------------------+---------------------------------+
Calcula el tiempo de ranura que se usa
En la siguiente consulta, se muestra el tiempo de ranura que se usa 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 | +---------------------------+---------------------------------+