Vista JOBS_TIMELINE_BY_ORGANIZATION
La vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
contiene metadatos de BigQuery casi en tiempo real por porción de tiempo de todas las tareas enviadas en la organización asociada al proyecto actual.
Esta vista contiene las tareas que se están ejecutando y las que se han completado.
Permisos obligatorios
Para consultar la vista INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
, necesita el permiso bigquery.jobs.listAll
de Gestión de Identidades y Accesos (IAM) de la organización.
Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye el permiso necesario:
- Administrador de recursos de BigQuery a nivel de organización
- Propietario de la organización
- Administrador de la organización
La tabla de esquemas de JOBS_BY_ORGANIZATION
solo está disponible para los usuarios con organizacionesGoogle Cloud definidas.
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. Este campo no se puede configurar. |
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. |
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_ORGANIZATION |
Organización que contiene el proyecto especificado | REGION |
-
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
Ejemplo: ver el uso total de espacios por segundo
Para ejecutar la consulta en un proyecto que no sea el predeterminado, añade el ID del proyecto con el siguiente formato:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
.
En el siguiente ejemplo se muestra el uso de ranuras por segundo de los proyectos asignados a YOUR_RESERVATION_ID
en todas las tareas:
SELECT s.start_time AS period_start, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(s.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(s.slots_max_assigned) AS estimated_slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.reservation_id = 'YOUR_RESERVATION_ID' AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start ORDER BY period_start DESC;
El resultado es similar al siguiente:
+-----------------------+---------------------+--------------------------+------------------------------+ | period_start | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| 96.753 | 100 | 100 | |2021-06-08 21:33:57 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+--------------------------+------------------------------+
Ejemplo: Uso de slots por reserva
En el siguiente ejemplo se muestra el uso de las franjas por segundo de cada reserva del último día:
SELECT s.start_time AS period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(res.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(res.slots_max_assigned) AS estimated_slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start, reservation_id ORDER BY period_start DESC, reservation_id;
El resultado es similar al siguiente:
+-----------------------+----------------+---------------------+--------------------------+------------------------------+ | period_start | reservation_id | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+----------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:57 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:56 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+