Utilizzo delle sessioni
Questo documento descrive come creare, utilizzare, terminare ed elencare le sessioni.
Prima di completare questi passaggi, assicurati di disporre delle autorizzazioni necessarie permessi.
Creare una sessione
Se vuoi acquisire un gruppo di attività SQL, crea una sessione BigQuery. Dopo aver creato una sessione, puoi eseguire query interattive al suo interno fino alla sua chiusura. Tutte le query nella sessione vengono eseguite (elaborate) nella località in cui è stata creata la sessione.
Console
Nella Google Cloud console, a ogni sessione viene assegnata una scheda dell'editor.
Nella Google Cloud console, vai alla pagina BigQuery.
Fai clic su Crea nuova query. Si apre una nuova scheda dell'editor.
Fai clic su Altro > Impostazioni query. Viene visualizzato il riquadro Impostazioni query.
Nella sezione Gestione sessioni, fai clic su Utilizza la modalità sessione per abilitare la modalità sessione.
In Impostazioni aggiuntive > Località dei dati, seleziona la località. Dopo la creazione della sessione, tutte le query nella sessione sono limitate a questa località e la località non può essere modificata.
Fai clic su Salva.
Scrivi una query nella scheda dell'editor ed eseguila. La nuova sessione viene creata dopo l'esecuzione della prima query.
bq
Apri Cloud Shell
e inserisci il seguente
bq query comando:
bq query \ --nouse_legacy_sql \ --create_session [--location 'SESSION_LOCATION'] \ 'SQL_STATEMENT'
dove:
- SESSION_LOCATION: associa la sessione a una località fisica. Limita tutte le query nella sessione a questa località. Facoltativo.
- SQL_STATEMENT: la prima istruzione SQL per la sessione.
L'ID sessione viene restituito con i risultati della query.
API
Chiama il
jobs.query metodo con
i seguenti parametri:
{ "query": "SQL_STATEMENT", "createSession": true, ["location": "SESSION_LOCATION"] }
dove:
- SQL_STATEMENT: la prima istruzione SQL per la sessione.
- SESSION_LOCATION: associa la sessione a una località fisica. Limita tutte le query nella sessione a questa località. Facoltativo.
Il corpo della risposta è simile al seguente:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
Eseguire una query in una sessione
Dopo aver creato una sessione, puoi eseguire query al suo interno:
Console
Nella Google Cloud console, vai alla pagina BigQuery.
Fai clic sulla scheda dell'editor che contiene la sessione.
Aggiungi la query alla sessione e fai clic su Esegui.
bq
Apri Cloud Shell
e inserisci il seguente
bq query comando:
bq query \ --nouse_legacy_sql \ --session_id=SESSION_ID \ 'SQL_STATEMENT'
dove:
- SESSION_ID: sostituisci questo valore con l' ID della sessione che vuoi utilizzare.
- SQL_STATEMENT: un'istruzione SQL da eseguire nella sessione.
I risultati della query sono seguiti dall'ID sessione.
Se intendi eseguire molte query con Cloud Shell,
puoi aggiungere l'ID sessione a [query] in
.bigqueryrc
in modo da non doverlo copiare e incollare in ogni comando.
Ecco come appare un ID sessione in .bigqueryrc:
[query]
--session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
Dopo aver aggiunto l'ID sessione a .bigqueryrc, puoi omettere il flag --session_id dal comando bq query. Se vuoi utilizzare un'altra sessione o se una sessione termina, devi aggiornare il file .bigqueryrc.
API
Chiama il
jobs.query metodo con
i seguenti parametri:
{ "query": "SQL_STATEMENT", "connectionProperties": [{ "key": "session_id", "value": "SESSION_ID" }] }
dove:
- SQL_STATEMENT: la prima istruzione SQL per la sessione.
- SESSION_ID: l'ID della sessione.
Terminare una sessione
Una sessione può essere terminata manualmente o automaticamente. La cronologia di una sessione terminata è disponibile per 20 giorni dopo la chiusura.
Terminare automaticamente una sessione
Una sessione viene terminata automaticamente dopo 24 ore di inattività o dopo 7 giorni, a seconda di quale evento si verifica per primo.
Terminare la sessione corrente
Puoi terminare la sessione corrente con un'istruzione SQL o nella Google Cloud console, se la sessione è stata creata lì.
Console
Nella Google Cloud console, vai alla pagina BigQuery.
Trova la scheda dell'editor che contiene la sessione e chiudila. La sessione viene terminata.
SQL
Per terminare la sessione:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CALL BQ.ABORT_SESSION();
Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.
Terminare una sessione per ID
Puoi terminare una sessione utilizzando il suo ID. Non devi essere nella sessione per terminarla in questo modo.
Recupera l'ID sessione ed esegui la seguente istruzione:
CALL BQ.ABORT_SESSION(SESSION_ID);
Sostituisci SESSION_ID con l'ID della sessione da terminare.
Recuperare l'ID della sessione attiva
In alcune situazioni, devi fare riferimento a una sessione per continuare a lavorarci. Ad esempio, se utilizzi Cloud Shell, devi includere l'ID sessione ogni volta che esegui un comando per quella sessione.
Console
Non devi fornire l'ID sessione per eseguire una nuova query all'interno di una sessione nella Google Cloud console. Puoi semplicemente continuare a lavorare nella scheda dell'editor che contiene la sessione. Tuttavia, se vuoi fare riferimento alla sessione in Cloud Shell o in una chiamata API, devi conoscere l'ID della sessione che hai creato nella console.
Prima di completare questi passaggi, assicurati di aver eseguito almeno una query in una sessione attiva.
Nella Google Cloud console, vai alla pagina BigQuery.
Fai clic sulla scheda dell'editor che contiene la sessione.
In Risultati query, fai clic su Informazioni sul job.
Nell'elenco Informazioni sul job, cerca l'ID sessione:
Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
bq
Per eseguire i comandi di query in una sessione all'interno di Cloud Shell, devi includere l'ID sessione nel comando. Puoi recuperare l'ID sessione quando crei una sessione o elencando le sessioni.
Quando crei una sessione con Cloud Shell, l'ID sessione restituito è simile al seguente:
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
API
Per passare i comandi SQL a una sessione con una chiamata API, devi includere l'ID sessione nella chiamata API. Puoi recuperare l'ID sessione quando crei una sessione o elencando le sessioni.
Quando crei una sessione con una chiamata API, l'ID sessione nella risposta è simile al seguente:
sessionId: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
Elencare le sessioni attive e inattive
Per recuperare gli ID sessione delle sessioni attive e inattive:
Console
Nella Google Cloud console, vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro a sinistra per aprirlo.
Nel riquadro Explorer, fai clic su Cronologia job.
Seleziona il tipo di cronologia job:
- Per visualizzare le informazioni sui job recenti, fai clic su Cronologia personale.
- Per visualizzare le informazioni sui job recenti nel progetto, fai clic su Cronologia progetto.
Nella colonna ID sessione, puoi visualizzare gli ID sessione dei tuoi job.
SQL
Per recuperare un elenco delle tre sessioni più recenti, incluse le sessioni attive e terminate, esegui la seguente query nella scheda dell'editor:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
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;Sostituisci quanto segue:
VIEW: la vistaINFORMATION_SCHEMA:JOBS_BY_USER: restituisce solo i job creati dall'utente corrente nel progetto correnteSESSIONS_BY_USER: restituisce solo le sessioni create dall'utente corrente nel progetto correnteSESSIONS_BY_PROJECT: restituisce tutte le sessioni nel progetto corrente
Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.
Il risultato è simile al seguente:
+-------------------------------------------------------------------------+ | 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 | +-------------------------------------------------------------------------+
Visualizzare la cronologia di una sessione
Una sessione acquisisce le tue attività SQL in un determinato periodo di tempo. Queste informazioni vengono archiviate nella cronologia della sessione. La cronologia delle sessioni ti consente di monitorare le modifiche apportate alla sessione. Se un job non riesce o ha esito positivo, viene registrato nella cronologia delle sessioni in modo che tu possa tornare indietro in un secondo momento e vedere cosa hai fatto.
Console
Per visualizzare la cronologia di una sessione nella Google Cloud console, puoi filtrare la cronologia personale o la cronologia progetto per ID sessione per visualizzare tutte le query SQL eseguite in una sessione specifica.
Nella Google Cloud console, vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Nel riquadro Explorer, fai clic su Cronologia job.
Seleziona il tipo di cronologia job che vuoi visualizzare:
- Per visualizzare le informazioni sui job recenti, fai clic su Cronologia personale.
- Per visualizzare le informazioni sui job recenti nel progetto, fai clic su Cronologia progetto.
Fai clic su Filtra e poi seleziona ID sessione.
Nel campo ID sessione, cerca l'ID sessione:
Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
SQL
Per visualizzare i dati storici di una sessione specifica, recupera prima l'ID sessione, poi segui questi passaggi:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
SELECT * FROM region-us.INFORMATION_SCHEMA.VIEW WHERE session_info.session_id = 'SESSION_ID';
Sostituisci quanto segue:
VIEW: la vista
INFORMATION_SCHEMAcon cui lavorareSeleziona una delle seguenti visualizzazioni:
JOBS_BY_USER: restituisce solo i job creati dall'utente corrente nel progetto correnteSESSIONS_BY_USER: restituisce solo le sessioni create dall'utente corrente nel progetto correnteSESSIONS_BY_PROJECT: restituisce tutte le sessioni nel progetto corrente
- SESSION_ID: l'ID della sessione per cui recuperare i dati storici
Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.
Esempio
La seguente query restituisce la cronologia di una sessione con l'ID sessione CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0. Puoi sostituire questo ID sessione con uno di tua scelta.
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);
Il risultato è simile al seguente:
+---------------------+------------------------------------------------------------------------------------------+
| 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; |
+---------------------+------------------------------------------------------------------------------------------+
Passaggi successivi
- Consulta l'Introduzione alle sessioni.
- Scopri di più su come scrivere query nelle sessioni.