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.
En la consola de Trusted Cloud , ve a la página BigQuery.
Haz clic en
Redactar consulta nueva. Se abrirá una pestaña nueva del editor.Haz clic en Más > Configuración de consulta. Aparecerá el panel Configuración de consulta.
En la sección Administración de sesiones, haz clic en Usar modo de sesión para habilitarlo.
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.
Haz clic en Guardar.
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
En la consola de Trusted Cloud , ve a la página BigQuery.
Haz clic en la pestaña del editor que contiene la sesión.
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
En la consola de Trusted Cloud , ve a la página BigQuery.
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:
En la consola de Trusted Cloud , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente sentencia:
CALL BQ.ABORT_SESSION();
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.
En la consola de Trusted Cloud , ve a la página BigQuery.
Haz clic en la pestaña del editor que contiene la sesión.
En los resultados de la consulta, haz clic en Información de los trabajos.
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
En la consola de Trusted Cloud , ve a la página BigQuery.
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.
En la columna ID de sesión, puedes ver los IDs de sesión de tus 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:
En la consola de Trusted Cloud , ve a la página BigQuery.
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 vistaINFORMATION_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.
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.
En la consola de Trusted Cloud , ve a la página BigQuery.
Expande la sección Historial de trabajos.
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.
Haz clic en
Filtro y, luego, selecciona ID de sesión.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:
En la consola de Trusted Cloud , ve a la página BigQuery.
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 actualSESSIONS_BY_USER
: solo muestra las sesiones creadas por el usuario actual en el proyecto actualSESSIONS_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
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?
- Consulta la Introducción a las sesiones.
- Obtén más información para escribir consultas en sesiones.