Trabaja con sesiones

En este documento, se describe cómo crear, usar, finalizar y enumerar tus sesiones.

Antes de completar estos pasos, asegúrate de tener los permisos necesarios.

Crea una sesión

Si deseas capturar un grupo de tus actividades de SQL, crea una sesión de BigQuery. Después de crear una sesión, puedes ejecutar consultas interactivas en tu sesión hasta que finalice. Todas las consultas en la sesión se ejecutan (procesan) en la ubicación en la que se creó la sesión.

Console

En la consola de Trusted Cloud , cada sesión se asigna a una pestaña del editor.

  1. En la consola de Trusted Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. Haz clic en Redactar consulta nueva. Se abrirá una pestaña nueva del editor.

  3. Haz clic en Más > Configuración de consulta. Aparecerá el panel Configuración de consulta.

  4. En la sección Administración de sesiones, haz clic en Usar modo de sesión para habilitarlo.

  5. En Configuración adicional > Ubicación de los datos, selecciona la ubicación. Cuando se crea una sesión, todas las consultas en la sesión están restringidas a esta ubicación y la ubicación no se puede cambiar.

  6. Haz clic en Guardar.

  7. Escribe una consulta en la pestaña del editor y ejecútala. La sesión nueva se crea después de que se ejecuta esta primera consulta.

bq

Abre Cloud Shell y, luego, ingresa el siguiente comando bq query:

bq query \
--nouse_legacy_sql \
--create_session
[--location 'SESSION_LOCATION'] \
'SQL_STATEMENT'

donde:

  • SESSION_LOCATION: Vincula la sesión a una ubicación física. Restringe todas las consultas de la sesión a esta ubicación. Opcional.
  • SQL_STATEMENT: Es la primera instrucción de SQL para la sesión.

Tu ID de sesión se devuelve con los resultados de la búsqueda.

API

Llama al método jobs.query con los siguientes parámetros:

{
  "query": "SQL_STATEMENT",
  "createSession": true,
  ["location": "SESSION_LOCATION"]
}

donde:

  • SQL_STATEMENT: Es la primera instrucción de SQL para la sesión.
  • SESSION_LOCATION: Vincula la sesión a una ubicación física. Restringe todas las consultas de la sesión a esta ubicación. Opcional.

El cuerpo de respuesta es similar al ejemplo a continuación:

{
  "jobReference": {
    "projectId": "myProject",
    "jobId": "job_123"
  },
  "statistics": {
    "sessionInfo": {
      "sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
    }
  }
}

Ejecuta una consulta en una sesión

Después de crear una sesión, puedes ejecutar consultas en ella:

Console

  1. En la consola de Trusted Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. Haz clic en la pestaña del editor que contiene la sesión.

  3. Agrega tu consulta a la sesión y haz clic en Ejecutar.

bq

Abre Cloud Shell y, luego, ingresa el siguiente comando bq query:

bq query \
--nouse_legacy_sql \
--session_id=SESSION_ID \
'SQL_STATEMENT'

Donde:

  • SESSION_ID: Reemplaza esto por el ID de la sesión con la que deseas trabajar.
  • SQL_STATEMENT: Una instrucción de SQL para ejecutar en tu sesión.

Los resultados de la consulta están seguidos de tu ID de sesión.

Si vas a ejecutar muchas consultas con Cloud Shell, puedes agregar tu ID de sesión a [query] en .bigqueryrc para no tener que copiar y pegar el ID de sesión en cada comando.

Así se ve un ID de sesión en .bigqueryrc:

[query]
--session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

Después de que hayas agregado el ID de sesión a .bigqueryrc, puedes omitir la marca --session_id del comando bq query. Si quieres usar una sesión diferente o si una sesión finaliza, debes actualizar tu archivo .bigqueryrc.

API

Llama al método jobs.query con los siguientes parámetros:

{
  "query": "SQL_STATEMENT",
  "connectionProperties": [{
    "key": "session_id",
    "value": "SESSION_ID"
  }]
}

donde:

  • SQL_STATEMENT: Es la primera instrucción de SQL para la sesión.
  • SESSION_ID: El ID de la sesión.

Cómo finalizar una sesión

Una sesión se puede finalizar de forma manual o automática. El historial de sesiones finalizadas está disponible durante 20 días después de finalizadas.

Finaliza una sesión de forma automática

Una sesión se finaliza de forma automática después de 24 horas de inactividad o después de 7 días, lo que ocurra primero.

Finaliza la sesión actual

Puedes finalizar tu sesión actual con una instrucción de SQL o en laTrusted Cloud consola, si la sesión se creó allí.

Console

  1. En la consola de Trusted Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. Busca la pestaña del editor que contiene tu sesión y ciérrala. La sesión finaliza.

SQL

Haz lo siguiente para finalizar tu sesión:

  1. En la consola de Trusted Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, escribe la siguiente sentencia:

    CALL BQ.ABORT_SESSION();

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.

Finaliza una sesión por ID

Puedes finalizar una sesión con su ID. No es necesario que estés en la sesión para finalizarla de esta manera.

Obtén el ID de sesión y, luego, ejecuta la siguiente declaración:

CALL BQ.ABORT_SESSION(SESSION_ID);

Reemplaza SESSION_ID por el ID de la sesión que deseas finalizar.

Obtén el ID de tu sesión activa

En algunos casos, debes hacer referencia a una sesión para continuar trabajando en ella. Por ejemplo, si trabajas con Cloud Shell, debes incluir el ID de sesión cada vez que ejecutes un comando para esa sesión.

Console

No necesitas proporcionar el ID de sesión para ejecutar una consulta nueva dentro de una sesión en la Trusted Cloud consola. Puedes continuar trabajando en la pestaña del editor que contiene la sesión. Sin embargo, si deseas hacer referencia a tu sesión en Cloud Shell o a una llamada a la API, debes conocer el ID de la sesión que creaste en la consola.

Antes de completar estos pasos, asegúrate de haber ejecutado al menos una consulta en una sesión activa.

  1. En la consola de Trusted Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. Haz clic en la pestaña del editor que contiene la sesión.

  3. En los resultados de la consulta, haz clic en Información de los trabajos.

  4. En la lista Información del trabajo, busca el ID de sesión:

    Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
    

bq

Para ejecutar los comandos de consulta en una sesión dentro de Cloud Shell, debes incluir el ID de sesión en el comando. Para obtener el ID de sesión, puedes crear una sesión o listar tus sesiones.

Cuando creas una sesión con Cloud Shell, el ID de sesión que se muestra es similar al siguiente:

In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

API

Para pasar los comandos de SQL a una sesión con una llamada a la API, debes incluir el ID de sesión en la llamada a la API. Para obtener el ID de sesión, puedes crear una sesión o listar tus sesiones.

Cuando creas una sesión con una llamada a la API, el ID de sesión en la respuesta se ve de la siguiente manera:

sessionId: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

Enumera las sesiones activas e inactivas

Para obtener los ID de sesión de las sesiones activas e inactivas, sigue estos pasos:

Console

  1. En la consola de Trusted Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. Elige el tipo de historial de trabajos:

    • Para mostrar la información de tus trabajos recientes, haz clic en Historial personal.
    • Para mostrar información de los trabajos recientes en tu proyecto, haz clic en Historial del proyecto.
  3. En la columna ID de sesión, puedes ver los IDs de sesión de tus trabajos.

    ID de sesión en el historial de trabajos

SQL

Para obtener una lista de tus tres sesiones más recientes, incluidas las sesiones activas y finalizadas, ejecuta la siguiente consulta en la pestaña del editor:

  1. En la consola de Trusted Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, escribe la siguiente oración:

    SELECT
      session_id,
      MAX(creation_time) AS last_modified_time
    FROM region-us.INFORMATION_SCHEMA.VIEW
    WHERE
      session_id IS NOT NULL
      AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 20 DAY)
    GROUP BY session_id
    ORDER BY last_modified_time DESC;

    Reemplaza lo siguiente:

    • VIEW: la vista INFORMATION_SCHEMA:
      • JOBS_BY_USER: solo muestra los trabajos creados por el usuario actual en el proyecto actual.
      • SESSIONS_BY_USER: solo muestra las sesiones creadas por el usuario actual en el proyecto actual.
      • SESSIONS_BY_PROJECT: muestra todas las sesiones del proyecto actual.

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.

El resultado es similar al siguiente:

+-------------------------------------------------------------------------+
| session_id                                        | last_modified_time  |
+-------------------------------------------------------------------------+
| CgwKCmZhbGl1LXRlc3QQARokMGQ5YWWYzZmE0YjhkMDBm     | 2021-06-01 23:04:26 |
| CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZTczwZjA1NDc2 | 2021-05-30 22:43:02 |
| CgwKCmZhbGl1LXRlc3QQY2MzLTg4ZDEtYzVhOWZiYmM5NzZk  | 2021-04-07 22:31:21 |
+-------------------------------------------------------------------------+

Ve el historial de una sesión

Una sesión captura tus actividades de SQL dentro de un período. Esta información se almacena en el historial de la sesión. El historial de la sesión te permite hacer un seguimiento de los cambios que realizaste en la sesión. Si un trabajo falla o se realiza de forma correcta, se registra en el historial de sesión a fin de que puedas volver más tarde y ver lo que hiciste.

Console

Para ver el historial de una sesión en la consola de Trusted Cloud , puedes filtrar tu historial personal o el historial del proyecto por ID de sesión para ver todas las consultas de SQL que se ejecutan en una sesión específica.

  1. En la consola de Trusted Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. Expande la sección Historial de trabajos.

  3. Selecciona el tipo de historial de trabajos que deseas ver:

    • Para mostrar la información de tus trabajos recientes, haz clic en Historial personal.
    • Para mostrar información de los trabajos recientes en tu proyecto, haz clic en Historial del proyecto.
  4. Haz clic en Filtro y, luego, selecciona ID de sesión.

  5. En el campo ID de sesión, busca el ID de sesión:

    Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
    

SQL

Para ver los datos históricos de una sesión específica, primero obtén tu ID de sesión y, luego, sigue estos pasos:

  1. En la consola de Trusted Cloud , ve a la página BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, escribe la siguiente oración:

    SELECT
      *
    FROM
      region-us.INFORMATION_SCHEMA.VIEW
    WHERE
      session_info.session_id = 'SESSION_ID';

    Reemplaza lo siguiente:

    • VIEW: La vista INFORMATION_SCHEMA con la que se trabajará

      Selecciona una de las siguientes vistas:

      • JOBS_BY_USER: solo muestra los trabajos creados por el usuario actual en el proyecto actual
      • SESSIONS_BY_USER: solo muestra las sesiones creadas por el usuario actual en el proyecto actual
      • SESSIONS_BY_PROJECT: muestra todas las sesiones del proyecto actual
    • SESSION_ID: es el ID de la sesión de la que se recuperan datos históricos

  3. Haz clic en Ejecutar.

Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.

Ejemplo

A continuación, se muestra el historial de una sesión que tiene el ID de sesión CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0. Puedes reemplazar este ID de sesión por el tuyo.

SELECT
  creation_time, query
FROM
  region-us.INFORMATION_SCHEMA.JOBS_BY_USER
WHERE
  session_info.session_id = 'CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0'
  AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 20 DAY);

El resultado es similar al siguiente:

+---------------------+------------------------------------------------------------------------------------------+
|    creation_time    |                                          query                                           |
+---------------------+------------------------------------------------------------------------------------------+
| 2021-06-01 23:04:26 | SELECT * FROM Purchases;                                                                 |
| 2021-06-01 23:02:51 | CREATE TEMP TABLE Purchases(total INT64) AS SELECT * FROM UNNEST([10,23,3,14,55]) AS a;  |
+---------------------+------------------------------------------------------------------------------------------+

¿Qué sigue?