Crea sesiones

En este documento, se describe cómo crear sesiones de datos en BigQuery. Está dirigido a usuarios familiarizados con sesiones de BigQuery.

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.

Antes de completar estos pasos, asegúrate de tener los permisos necesarios para crear una sesión.

Console

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

  1. En la consola de Google Cloud, ve a la página de 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.

Prueba tu sesión

Crea una sesión junto con una tabla temporal con este comando:

bq query \
  --nouse_legacy_sql \
  --create_session \
  --location 'asia-northeast1' \
  'SELECT 1;'

Asegúrate de que se produzcan resultados similares a los siguientes:

In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

API

Llama al método jobs.insert o jobs.query con un recurso jobs definido.

jobs.insert

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

{
  "jobReference": {
    "projectId": "PROJECT_ID",
    "jobId": "JOB_ID",
    ["location": "SESSION_LOCATION"]
  },
  "configuration": {
    "query": {
      "query": "SQL_STATEMENT",
       "createSession": {
         "value": true
       }
    }
  }
}

Donde:

  • PROJECT_ID: Es el proyecto para el que se creará la sesión.
  • JOB_ID: Es el trabajo para el que se creará 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.
  • SQL_STATEMENT: Es la primera instrucción de SQL para la sesión.

Prueba tu sesión

Ingresa el siguiente cuerpo de solicitud. Reemplaza myProject y job_123 por el ID de un proyecto y el ID de un trabajo.

{
  "jobReference": {
    "projectId": "myProject",
    "jobId": "job_123"
  },
  "configuration": {
    "query": {
      "query": "SELECT 1;",
      "createSession": {
          "value": true
      }
    }
  }
}

Asegúrate de que el cuerpo de la respuesta sea similar a este:

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

jobs.query

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.

Prueba tu sesión

Ingresa el siguiente cuerpo de solicitud. Reemplaza myProject y job_123 por el ID de un proyecto y el ID de un trabajo.

{
  "query": "SELECT 1;",
  "createSession": true
}

Asegúrate de que el cuerpo de la respuesta sea similar a este:

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

¿Qué sigue?