Esecuzione di query in sessioni
Questo documento descrive come eseguire query in una sessione BigQuery. È destinata agli utenti che hanno già una conoscenza generale sessioni, hanno già creato una sessione e conosci ID per la sessione che vuole utilizzare.
Prima di completare questi passaggi, assicurati di disporre della necessaria autorizzazioni per per creare una sessione.
Eseguire una query in una sessione
Dopo aver creato una sessione, puoi aggiungere un alla sessione ed eseguirla. Puoi farlo in diversi modi questo:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Fai clic sulla scheda dell'editor che contiene la sessione.
Aggiungi la query alla sessione e fai clic su Esegui.
Testa la tua sessione
Nella console Google Cloud, apri una scheda dell'editor che contiene un'immagine sessione che hai creato ed eseguirla Istruzione SQL:
CREATE TEMP TABLE Temperature(degrees INT64) AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;
Elimina o commenta i contenuti nella scheda ed esegui questa istruzione SQL:
SELECT * FROM Temperature;
Assicurati che vengano restituiti risultati simili a questi:
+---------+
| degrees |
+---------+
| 55 |
| 14 |
| 3 |
| 0 |
| 30 |
+---------+
bq
Apri Cloud Shell.
e inserisci quanto segue
Comando bq query
:
bq query \ --nouse_legacy_sql \ --session_id=SESSION_ID \ 'SQL_STATEMENT'
dove:
- SESSION_ID: sostituiscilo con ID della sessione su cui vuoi lavorare.
- SQL_STATEMENT: un'istruzione SQL da eseguire nella sessione.
Testa la tua sessione
Crea una tabella temporanea denominata Temperature
in un
sessione creata da te. Sostituisci
di sessione con il tuo.
bq query \
--nouse_legacy_sql \
--session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ \
'CREATE TEMP TABLE Temperature(degrees INT64) AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;'
Visualizza un elenco di tutti i valori nella tabella Temperature
. Sostituisci
di sessione con il tuo.
bq query \
--nouse_legacy_sql \
--session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ \
'SELECT * FROM Temperature;'
Assicurati che vengano restituiti risultati simili a questi:
+-------+
| total |
+-------+
| 30 |
| 0 |
| 3 |
| 14 |
| 55 |
+-------+
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
Risparmia tempo aggiungendo la tua sessione a .bigqueryrc
Se eseguirai molte query con Cloud Shell,
puoi aggiungere il tuo ID sessione a [query]
in
.bigqueryrc
in modo da non dover copiare e incollare l'ID sessione in ciascun comando.
Ecco come si presenta un ID sessione in .bigqueryrc
:
[query]
--session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
Dopo aver aggiunto l'ID sessione a .bigqueryrc
, puoi utilizzare questo comando
anziché:
bq query \
--nouse_legacy_sql \
'SELECT * FROM Temperature;'
Tieni presente che se desideri utilizzare una sessione diversa o se una sessione
termina, devi aggiornare .bigqueryrc
.
API
Chiama il metodo job.insert o il metodo job.query con un valore definito risorse di lavoro.
jobs.insert
Chiama il
Metodo jobs.insert
con
i seguenti parametri:
{ "jobReference": { "projectId": "PROJECT_ID", "jobId": "JOB_ID" }, "configuration": { "query": { "query": "SQL_STATEMENT", "connectionProperties": [{ "key": "session_id", "value": "SESSION_ID" }] } } }
dove:
- PROJECT_ID: il progetto per il quale creare la sessione.
- JOB_ID: il job per il quale creare la sessione.
- SQL_STATEMENT: la prima istruzione SQL per la tua sessione.
- SESSION_ID: l'ID della sessione.
Testa la tua sessione
Inserisci il seguente corpo della richiesta per creare una tabella temporanea denominata
Temperature
in una sessione creata da te.
Sostituisci l'ID progetto, l'ID job e l'ID sessione con i tuoi dati.
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"configuration": {
"query": {
"query": "CREATE TEMP TABLE Temperature(degrees INT64) AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;",
"connectionProperties": [{
"key": "session_id",
"value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}]
}
}
}
Inserisci il seguente corpo della richiesta per ottenere un elenco di tutti i valori nella
Tabella Temperature
in una sessione. Sostituisci l'ID progetto, l'ID job
di sessione con il tuo.
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"configuration": {
"query": {
"query": "SELECT * FROM Temperature;",
"connectionProperties": [{
"key": "session_id",
"value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}]
}
}
}
Assicurati che il corpo della risposta per entrambe le richieste sia simile a questo:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
jobs.query
Chiama il
Metodo jobs.query
con
i seguenti parametri:
{ "query": "SQL_STATEMENT", "connectionProperties": [{ "key": "session_id", "value": "SESSION_ID" }] }
dove:
- SQL_STATEMENT: la prima istruzione SQL per la tua sessione.
- SESSION_ID: l'ID della sessione.
Testa la tua sessione
Inserisci il seguente corpo della richiesta per creare una tabella temporanea denominata
Temperature
in una sessione creata da te.
Sostituisci l'ID progetto, l'ID job e l'ID sessione con i tuoi dati.
{
"query": "CREATE TEMP TABLE Temperature(degrees INT64) AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;",
"connectionProperties": [{
"key": "session_id",
"value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}]
}
Inserisci il seguente corpo della richiesta per ottenere un elenco di tutti i valori nella
Tabella Temperature
in una sessione. Sostituisci l'ID progetto, l'ID job
di sessione con il tuo.
{
"query": "SELECT * FROM Temperature;",
"connectionProperties": [{
"key": "session_id",
"value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}]
}
Assicurati che il corpo della risposta per entrambe le richieste sia simile a questo:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}