Vista SESSIONS

La vista INFORMATION_SCHEMA.SESSIONS contiene metadatos en tiempo real sobre todas las sesiones de BigQuery del proyecto actual.

Permisos necesarios

A fin de consultar la vista INFORMATION_SCHEMA.SESSIONS, necesitas el permiso bigquery.jobs.listAll de IAM para el proyecto. Cada uno de los siguientes roles predefinidos de IAM incluye el permiso requerido:

  • Propietario del proyecto
  • Administrador de BigQuery

Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.

Schema

Cuando consultas las vistas INFORMATION_SCHEMA.SESSIONS_BY_*, los resultados de la consulta contienen una fila para cada sesión de BigQuery.

La vista INFORMATION_SCHEMA.SESSIONS_BY_* tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
creation_time TIMESTAMP Es la hora de creación de esta sesión (columna de partición). La partición se basa en la hora UTC de esta marca de tiempo.
expiration_time TIMESTAMP Es la hora de vencimiento de esta sesión (columna de partición). La partición se basa en la hora UTC de esta marca de tiempo.
is_active BOOL ¿La sesión sigue activa? TRUE si la respuesta es sí, de lo contrario, FALSE.
last_modified_time TIMESTAMP (Columna de partición) Hora en la que se modificó la sesión por última vez. La partición se basa en la hora UTC de esta marca de tiempo.
project_id STRING (Columna de agrupamiento en clústeres) ID del proyecto.
project_number INTEGER Es el número del proyecto.
session_id STRING ID de la sesión. Por ejemplo, bquxsession_1234.
user_email STRING Es la dirección de correo electrónico o la cuenta de servicio del usuario que ejecutó la sesión (columna de agrupamiento en clústeres).

Retención de datos

Esta vista contiene las sesiones que se están ejecutando y el historial de sesiones completadas en 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.SESSIONS[_BY_PROJECT] Nivel de proyecto REGION
Reemplaza lo siguiente:

  • Opcional: PROJECT_ID es el ID de tu proyecto de Cloud. Si no se especifica, se usa el proyecto predeterminado.
  • REGION: cualquier nombre de región del conjunto de datos. Por ejemplo, region-us.

Ejemplo

Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto con el siguiente formato:

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.SESSIONS
Por ejemplo, `myproject`.`region-us`.INFORMATION_SCHEMA.SESSIONS. En el siguiente ejemplo, se enumeran todos los usuarios o cuentas de servicio que crearon sesiones para un proyecto determinado en el último día:

SELECT
  DISTINCT(user_email) AS user
FROM
  `region-us`.INFORMATION_SCHEMA.SESSIONS_BY_PROJECT
WHERE
  is_active = true
  AND creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY);

El resultado es similar al siguiente:

+--------------+
| user         |
+--------------+
| abc@xyz.com  |
+--------------+
| def@xyz.com  |
+--------------+