Sitzungen erstellen

In diesem Dokument wird beschrieben, wie Sie Sitzungen in BigQuery erstellen. Es richtet sich an Nutzer, die mit BigQuery-Sitzungen vertraut sind.

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.

Bevor Sie diese Schritte ausführen, prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Erstellen einer Sitzung haben.

Console

In der Google Cloud Console wird jede Sitzung einem Editor-Tab zugewiesen.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Klicken Sie auf Neue Abfrage erstellen. Ein neuer Editor-Tab wird geöffnet.

  3. Klicken Sie auf Mehr > Abfrageeinstellungen. Das Feld Abfrageeinstellungen wird angezeigt.

  4. Klicken Sie im Abschnitt Sitzungsverwaltung auf Sitzungsmodus verwenden, um den Sitzungsmodus zu aktivieren.

  5. 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.

  6. Klicken Sie auf Speichern.

  7. 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'

wobei

  • 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.

Sitzung testen

Erstellen Sie mit diesem Befehl eine Sitzung zusammen mit einer temporären Tabelle:

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

Achten Sie darauf, dass Ergebnisse wie die folgenden erstellt werden:

In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ

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",
    ["location": "SESSION_LOCATION"]
  },
  "configuration": {
    "query": {
      "query": "SQL_STATEMENT",
       "createSession": {
         "value": true
       }
    }
  }
}

wobei

  • PROJECT_ID: Das Projekt, für das die Sitzung erstellt werden soll.
  • JOB_ID: Der Job, für den die Sitzung erstellt werden soll.
  • 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.

Sitzung testen

Geben Sie den folgenden Anfragetext ein. Ersetzen Sie myProject und job_123 durch die ID eines Projekts und die ID eines Jobs.

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

Der Antworttext 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",
  "createSession": true,
  ["location": "SESSION_LOCATION"]
}

wobei

  • 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.

Sitzung testen

Geben Sie den folgenden Anfragetext ein. Ersetzen Sie myProject und job_123 durch die ID eines Projekts und die ID eines Jobs.

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

Der Antworttext sollte in etwa so aussehen:

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

Nächste Schritte