Abfragen in Sitzungen ausführen
In diesem Dokument wird beschrieben, wie Sie Abfragen in einer BigQuery-Sitzung ausführen. Es richtet sich an Nutzer, die bereits ein allgemeines Verständnis von Sitzungen haben, bereits eine Sitzung erstellt haben und die ID für die Sitzung kennen, die sie verwenden möchten.
Bevor Sie diese Schritte ausführen, prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Erstellen einer Sitzung haben.
Abfrage in einer Sitzung ausführen
Nachdem Sie eine Sitzung erstellt haben, können Sie der Sitzung eine Abfrage hinzufügen und diese ausführen. Dafür gibt es verschiedene Möglichkeiten:
Console
Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.
Klicken Sie auf den Editor-Tab, der die Sitzung enthält.
Fügen Sie der Sitzung die Abfrage hinzu und klicken Sie auf Ausführen.
Sitzung testen
Öffnen Sie in der Google Cloud Console einen Editor-Tab, der eine von Ihnen erstellte Sitzung enthält und führen Sie diese SQL-Anweisung aus:
CREATE TEMP TABLE Temperature(degrees INT64) AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;
Löschen Sie den Inhalt auf dem Tab oder kommentieren Sie ihn aus und führen Sie diese SQL-Anweisung aus:
SELECT * FROM Temperature;
Achten Sie darauf, dass Ergebnisse wie die folgenden erstellt werden:
+---------+
| degrees |
+---------+
| 55 |
| 14 |
| 3 |
| 0 |
| 30 |
+---------+
bq
Öffnen Sie Cloud Shell und geben Sie den folgenden bq query
-Befehl ein:
bq query \ --nouse_legacy_sql \ --session_id=SESSION_ID \ 'SQL_STATEMENT'
Dabei gilt:
- SESSION_ID: Ersetzen Sie diesen Wert durch die ID der Sitzung, mit der Sie arbeiten möchten.
- SQL_STATEMENT: Eine SQL-Anweisung, die in der Sitzung ausgeführt werden soll.
Sitzung testen
Erstellen Sie in einer von Ihnen erstellten Sitzung eine temporäre Tabelle mit dem Namen Temperature
. Ersetzen Sie die Sitzungs-ID durch Ihre eigene ID.
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;'
Rufen Sie eine Liste aller Werte in der Tabelle Temperature
ab. Ersetzen Sie die Sitzungs-ID durch Ihre eigene ID.
bq query \
--nouse_legacy_sql \
--session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ \
'SELECT * FROM Temperature;'
Achten Sie darauf, dass Ergebnisse wie die folgenden erstellt werden:
+-------+
| total |
+-------+
| 30 |
| 0 |
| 3 |
| 14 |
| 55 |
+-------+
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
Sitzung zu .bigqueryrc
hinzufügen, um Zeit zu sparen
Wenn Sie viele Abfragen mit Cloud Shell ausführen werden, können Sie die Sitzungs-ID in .bigqueryrc
zu [query]
hinzufügen. Die Sitzungs-ID muss dann nicht in jeden Befehl eingefügt werden.
So sieht eine Sitzungs-ID in .bigqueryrc
aus:
[query]
--session_id=CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
Nachdem Sie die Sitzungs-ID zu .bigqueryrc
hinzugefügt haben, können Sie stattdessen diesen Befehl verwenden:
bq query \
--nouse_legacy_sql \
'SELECT * FROM Temperature;'
Wenn Sie eine andere Sitzung verwenden möchten oder eine Sitzung beendet wird, müssen Sie .bigqueryrc
aktualisieren.
API
Rufen Sie die Methode „jobs.insert“ oder „jobs.query“ mit einer definierten Jobressource auf.
jobs.insert
Rufen Sie die Methode jobs.insert
mit den folgenden Parametern auf:
{ "jobReference": { "projectId": "PROJECT_ID", "jobId": "JOB_ID" }, "configuration": { "query": { "query": "SQL_STATEMENT", "connectionProperties": [{ "key": "session_id", "value": "SESSION_ID" }] } } }
Dabei gilt:
- PROJECT_ID: Das Projekt, für das die Sitzung erstellt werden soll.
- JOB_ID: Der Job, für den die Sitzung erstellt werden soll.
- SQL_STATEMENT: Die erste SQL-Anweisung für Ihre Sitzung.
- SESSION_ID: Die ID der Sitzung.
Sitzung testen
Geben Sie den folgenden Anfragetext ein, um in einer von Ihnen erstellten Sitzung eine temporäre Tabelle mit dem Namen Temperature
zu erstellen.
Ersetzen Sie die Projekt-ID, die Job-ID und die Sitzungs-ID durch Ihre eigenen IDs.
{
"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"
}]
}
}
}
Geben Sie den folgenden Anfragetext ein, um eine Liste aller Werte in der Tabelle Temperature
in einer Sitzung abzurufen. Ersetzen Sie die Projekt-ID, die Job-ID und die Sitzungs-ID durch Ihre eigenen IDs.
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"configuration": {
"query": {
"query": "SELECT * FROM Temperature;",
"connectionProperties": [{
"key": "session_id",
"value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}]
}
}
}
Der Antworttext für beide Anfragen sollte in etwa so aussehen:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
jobs.query
Rufen Sie die Methode jobs.query
mit den folgenden Parametern auf:
{ "query": "SQL_STATEMENT", "connectionProperties": [{ "key": "session_id", "value": "SESSION_ID" }] }
Dabei gilt:
- SQL_STATEMENT: Die erste SQL-Anweisung für Ihre Sitzung.
- SESSION_ID: Die ID der Sitzung.
Sitzung testen
Geben Sie den folgenden Anfragetext ein, um in einer von Ihnen erstellten Sitzung eine temporäre Tabelle mit dem Namen Temperature
zu erstellen.
Ersetzen Sie die Projekt-ID, die Job-ID und die Sitzungs-ID durch Ihre eigenen IDs.
{
"query": "CREATE TEMP TABLE Temperature(degrees INT64) AS SELECT * FROM UNNEST([30,0,3,14,55]) AS a;",
"connectionProperties": [{
"key": "session_id",
"value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}]
}
Geben Sie den folgenden Anfragetext ein, um eine Liste aller Werte in der Tabelle Temperature
in einer Sitzung abzurufen. Ersetzen Sie die Projekt-ID, die Job-ID und die Sitzungs-ID durch Ihre eigenen IDs.
{
"query": "SELECT * FROM Temperature;",
"connectionProperties": [{
"key": "session_id",
"value": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}]
}
Der Antworttext für beide Anfragen sollte in etwa so aussehen:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}