Mit Sitzungen arbeiten
In diesem Dokument wird beschrieben, wie Sie Sitzungen erstellen, verwenden, beenden und auflisten.
Prüfen Sie vor dem Ausführen dieser Schritte, ob Sie die erforderlichen Berechtigungen haben.
Sitzung erstellen
Wenn Sie eine Gruppe Ihrer SQL-Aktivitäten erfassen möchten, erstellen Sie eine BigQuery-Sitzung. Nachdem Sie eine Sitzung erstellt haben, können Sie interaktive Abfragen in Ihrer Sitzung ausführen, bis die Sitzung beendet wird. Alle Abfragen in der Sitzung werden an dem Standort ausgeführt (verarbeitet), an dem die Sitzung erstellt wurde.
Console
In der Trusted Cloud Console wird jede Sitzung einem Editor-Tab zugewiesen.
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Klicken Sie auf
Neue Abfrage erstellen. Ein neuer Editor-Tab wird geöffnet.Klicken Sie auf Mehr > Abfrageeinstellungen. Das Feld Abfrageeinstellungen wird angezeigt.
Klicken Sie im Abschnitt Sitzungsverwaltung auf Sitzungsmodus verwenden, um den Sitzungsmodus zu aktivieren.
Wählen Sie unter Zusätzliche Einstellungen > Datenspeicherort den Speicherort aus. Nachdem eine Sitzung erstellt wurde, sind alle Abfragen in der Sitzung auf diesen Standort beschränkt und der Standort kann nicht geändert werden.
Klicken Sie auf Speichern.
Schreiben Sie eine Abfrage auf dem Editor-Tab und führen Sie sie aus. Die neue Sitzung wird nach dem Ausführen der ersten Abfrage erstellt.
bq
Öffnen Sie Cloud Shell und geben Sie den folgenden bq query
-Befehl ein:
bq query \ --nouse_legacy_sql \ --create_session [--location 'SESSION_LOCATION'] \ 'SQL_STATEMENT'
Dabei gilt:
- SESSION_LOCATION: Binden Sie die Sitzung an einen physischen Standort. Beschränken Sie alle Abfragen in der Sitzung auf diesen Standort. Optional.
- SQL_STATEMENT: Die erste SQL-Anweisung für Ihre Sitzung.
Ihre Sitzungs-ID wird mit den Ergebnissen der Abfrage zurückgegeben.
API
Rufen Sie die Methode jobs.query
mit den folgenden Parametern auf:
{ "query": "SQL_STATEMENT", "createSession": true, ["location": "SESSION_LOCATION"] }
Dabei gilt:
- SQL_STATEMENT: Die erste SQL-Anweisung für Ihre Sitzung.
- SESSION_LOCATION: Binden Sie die Sitzung an einen physischen Standort. Beschränken Sie alle Abfragen in der Sitzung auf diesen Standort. Optional.
Der Antworttext ähnelt dem folgenden Beispiel:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
Abfrage in einer Sitzung ausführen
Nachdem Sie eine Sitzung erstellt haben, können Sie Abfragen in dieser Sitzung ausführen:
Console
Rufen Sie in der Trusted 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.
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.
Auf die Ergebnisse der Abfrage folgt Ihre Sitzungs-ID.
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 das Flag --session_id
aus dem Befehl bq query
weglassen. Wenn Sie eine andere Sitzung verwenden möchten oder eine Sitzung beendet wird, müssen Sie die Datei .bigqueryrc
aktualisieren.
API
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 beenden
Eine Sitzung kann manuell oder automatisch beendet werden. Der Verlauf einer beendeten Sitzung ist nach der Beendigung 20 Tage lang verfügbar.
Sitzung automatisch beenden
Eine Sitzung wird nach 24 Stunden Inaktivität oder nach 7 Tagen automatisch beendet, je nachdem, was zuerst eintritt.
Aktuelle Sitzung beenden
Sie können Ihre aktuelle Sitzung mit einer SQL-Anweisung oder in derTrusted Cloud Console beenden, wenn die Sitzung dort erstellt wurde.
Console
Rufen Sie in der Trusted Cloud Console die Seite "BigQuery" auf.
Suchen Sie den Editor-Tab mit Ihrer Sitzung und schließen Sie ihn. Die Sitzung wird beendet.
SQL
So beenden Sie Ihre Sitzung:
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Geben Sie im Abfrageeditor die folgende Anweisung ein:
CALL BQ.ABORT_SESSION();
Klicken Sie auf
Ausführen.
Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.
Sitzung durch ID beenden
Sie können eine Sitzung anhand ihrer ID beenden. Sie müssen sich nicht in der Sitzung befinden, um sie auf diese Weise zu beenden.
Rufen Sie die Sitzungs-ID ab und führen Sie die folgende Anweisung aus:
CALL BQ.ABORT_SESSION(SESSION_ID);
Ersetzen Sie SESSION_ID durch die ID der zu beendenden Sitzung.
ID Ihrer aktiven Sitzung abrufen
In manchen Situationen müssen Sie auf eine Sitzung verweisen, um weiter damit arbeiten zu können. Wenn Sie beispielsweise mit Cloud Shell arbeiten, müssen Sie die Sitzungs-ID bei jeder Ausführung eines Befehls für diese Sitzung angeben.
Console
Sie müssen die Sitzungs-ID nicht angeben, um in einer Sitzung in der Trusted Cloud Console eine neue Abfrage auszuführen. Sie können einfach auf dem Editor-Tab, der die Sitzung enthält, weiterarbeiten. Wenn Sie jedoch auf Ihre Sitzung in Cloud Shell oder einen API-Aufruf verweisen möchten, müssen Sie die ID der Sitzung kennen, die Sie in der Konsole erstellt haben.
Bevor Sie diese Schritte ausführen, sollten Sie mindestens eine Abfrage in einer aktiven Sitzung ausgeführt haben.
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Klicken Sie auf den Editor-Tab, der die Sitzung enthält.
Klicken Sie in den Abfrageergebnissen auf Jobinformationen.
Suchen Sie in der Liste der Jobinformationen nach der Sitzungs-ID:
Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
bq
Zum Ausführen von Abfragebefehlen in einer Sitzung in Cloud Shell müssen Sie die Sitzungs-ID in den Befehl aufnehmen. Sie können die Sitzungs-ID abrufen, wenn Sie eine Sitzung erstellen oder Ihre Sitzungen auflisten.
Wenn Sie eine Sitzung mit Cloud Shell erstellen, sieht die zurückgegebene Sitzungs-ID so aus:
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
API
Um SQL-Befehle mit einem API-Aufruf in eine Sitzung zu übergeben, müssen Sie die Sitzungs-ID in den API-Aufruf aufnehmen. Sie können die Sitzungs-ID abrufen, wenn Sie eine Sitzung erstellen oder Ihre Sitzungen auflisten.
Wenn Sie eine Sitzung mit einem API-Aufruf erstellen, sieht die Sitzungs-ID in der Antwort so aus:
sessionId: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
Aktive und inaktive Sitzungen auflisten
So erhalten Sie die Sitzungs-IDs aktiver und inaktiver Sitzungen:
Console
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Wählen Sie den Typ des Jobverlaufs aus:
- Klicken Sie auf Persönlicher Verlauf, um Informationen zu Ihren letzten Jobs aufzurufen.
- Zum Aufrufen von Informationen zu den letzten Jobs in Ihrem Projekt klicken Sie auf Projektverlauf.
In der Spalte Sitzungs-ID sehen Sie die Sitzungs-IDs für Ihre Jobs.
SQL
Wenn Sie eine Liste Ihrer letzten drei Sitzungen abrufen möchten, einschließlich der aktiven und beendeten Sitzungen, führen Sie die folgende Abfrage auf dem Editor-Tab aus:
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Geben Sie im Abfrageeditor die folgende Anweisung ein:
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;Dabei gilt:
VIEW
: dieINFORMATION_SCHEMA
-Ansicht:JOBS_BY_USER
: gibt nur die Jobs zurück, die vom aktuellen Nutzer im aktuellen Projekt erstellt wurden.SESSIONS_BY_USER
: gibt nur die Sitzungen zurück, die vom aktuellen Nutzer im aktuellen Projekt erstellt wurden.SESSIONS_BY_PROJECT
: gibt alle Sitzungen im aktuellen Projekt zurück.
Klicken Sie auf
Ausführen.
Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.
Das Ergebnis sieht etwa so aus:
+-------------------------------------------------------------------------+ | 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 | +-------------------------------------------------------------------------+
Verlauf einer Sitzung ansehen
In einer Sitzung werden Ihre SQL-Aktivitäten innerhalb eines bestimmten Zeitraums erfasst. Diese Informationen werden im Verlauf der Sitzung gespeichert. Im Sitzungsverlauf können Sie die Änderungen verfolgen, die Sie in der Sitzung vorgenommen haben. Wenn ein Job fehlschlägt oder erfolgreich ist, wird das im Sitzungsverlauf aufgezeichnet, sodass Sie später noch sehen können, was Sie getan haben.
Console
Wenn Sie den Verlauf einer Sitzung in der Trusted Cloud Console aufrufen möchten, können Sie Ihren persönlichen Verlauf oder Ihren Projektverlauf nach der Sitzungs-ID filtern und sich so alle SQL-Abfragen anzeigen lassen, die in einer bestimmten Sitzung ausgeführt werden.
Rufen Sie in der Trusted Cloud Console die Seite "BigQuery" auf.
Maximieren Sie den Bereich Jobverlauf.
Wählen Sie den Jobverlaufstyp aus, den Sie sehen möchten:
- Klicken Sie auf Persönlicher Verlauf, um Informationen zu Ihren letzten Jobs aufzurufen.
- Zum Aufrufen von Informationen zu den letzten Jobs in Ihrem Projekt klicken Sie auf Projektverlauf.
Klicken Sie auf
Filter und wählen Sie dann Sitzungs-ID aus.Suchen Sie im Feld Sitzungs-ID nach der Sitzungs-ID:
Session ID: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
SQL
Rufen Sie zuerst die Sitzungs-ID ab und führen Sie dann die folgenden Schritte aus, wenn Sie Verlaufsdaten für eine bestimmte Sitzung abrufen möchten:
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Geben Sie im Abfrageeditor die folgende Anweisung ein:
SELECT * FROM region-us.INFORMATION_SCHEMA.VIEW WHERE session_info.session_id = 'SESSION_ID';
Dabei gilt:
VIEW: die
INFORMATION_SCHEMA
-Ansicht, mit der gearbeitet werden sollWählen Sie eine der folgenden Ansichten aus:
JOBS_BY_USER
: gibt nur die Sitzungen zurück, die vom aktuellen Nutzer im aktuellen Projekt erstellt wurden.SESSIONS_BY_USER
: gibt nur die Sitzungen zurück, die vom aktuellen Nutzer im aktuellen Projekt erstellt wurden.SESSIONS_BY_PROJECT
: gibt alle Sitzungen im aktuellen Projekt zurück.
- SESSION_ID: ID der Sitzung, für die Verlaufsdaten abgerufen werden sollen.
Klicken Sie auf
Ausführen.
Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.
Beispiel
Im folgenden Beispiel wird der Verlauf für eine Sitzung mit der Sitzungs-ID CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0
zurückgegeben: Sie können diese Sitzungs-ID durch Ihre eigene ersetzen.
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);
Das Ergebnis sieht etwa so aus:
+---------------------+------------------------------------------------------------------------------------------+
| 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; |
+---------------------+------------------------------------------------------------------------------------------+
Nächste Schritte
- Weitere Informationen finden Sie unter Einführung in Sitzungen.
- Weitere Informationen zum Formulieren von Abfragen in Sitzungen