Creazione di sessioni

Questo documento descrive come creare sessioni in BigQuery. È rivolto agli utenti che hanno dimestichezza con le sessioni BigQuery.

Creare una sessione

Se vuoi acquisire un gruppo di attività SQL, crea una sessione BigQuery. Dopo aver creato una sessione, puoi eseguire query interattive fino al suo termine. Tutte le query nella sessione vengono eseguite (elaborate) nella posizione in cui è stata creata la sessione.

Prima di completare questi passaggi, assicurati di disporre delle autorizzazioni necessarie per creare una sessione.

Console

Nella console Google Cloud , ogni sessione è assegnata a una scheda dell'editor.

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Fai clic su Crea nuova query. Si apre una nuova scheda dell'editor.

  3. Fai clic su Altro > Impostazioni query. Viene visualizzato il riquadro Impostazioni query.

  4. Nella sezione Gestione sessione, fai clic su Usa la modalità sessione per attivarla.

  5. In Impostazioni aggiuntive > Posizione dei dati, seleziona la località. Una volta creata la sessione, tutte le query al suo interno sono limitate a questa posizione e la posizione non può essere modificata.

  6. Fai clic su Salva.

  7. Scrivi una query nella scheda dell'editor e eseguila. La nuova sessione viene creata dopo l'esecuzione di questa prima query.

bq

Apri Cloud Shell e inserisci il seguente comando bq query:

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

dove:

  • SESSION_LOCATION: lega la sessione a un luogo fisico. Limita tutte le query della sessione a questa posizione. Facoltativo.
  • SQL_STATEMENT: il primo istruzione SQL per la sessione.

Prova la sessione

Crea una sessione e una tabella temporanea con questo comando:

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

Assicurati che vengano prodotti risultati simili a questi:

In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

API

Chiama il metodo jobs.insert o jobs.query con una risorsa jobs definita.

jobs.insert

Chiama il metodo jobs.insert con i seguenti parametri:

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

dove:

  • PROJECT_ID: il progetto per cui creare la sessione.
  • JOB_ID: il job per cui creare la sessione.
  • SESSION_LOCATION: lega la sessione a un luogo fisico. Limita tutte le query della sessione a questa posizione. Facoltativo.
  • SQL_STATEMENT: il primo istruzione SQL per la sessione.

Prova la sessione

Inserisci il seguente corpo della richiesta. Sostituisci myProject e job_123 con l'ID di un progetto e l'ID di un job.

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

Assicurati che il corpo della risposta sia simile al seguente:

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

jobs.query

Chiama il metodo jobs.query con i seguenti parametri:

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

dove:

  • SQL_STATEMENT: il primo istruzione SQL per la sessione.
  • SESSION_LOCATION: lega la sessione a un luogo fisico. Limita tutte le query della sessione a questa posizione. Facoltativo.

Prova la sessione

Inserisci il seguente corpo della richiesta. Sostituisci myProject e job_123 con l'ID di un progetto e l'ID di un job.

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

Assicurati che il corpo della risposta sia simile al seguente:

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

Passaggi successivi