Mit Reservierungszuweisungen arbeiten

Mit der BigQuery Reservations API können Sie dedizierte Slots (sogenannte Zusicherungen) kaufen und Slot-Pools erstellen (sogenannte Reservierungen und diesen Reservierungen Projekte, Ordner und Organisationen zuweisen.

Reservierungszuweisungen erstellen

Um die von Ihnen erworbenen Slots zu verwenden, erstellen Sie eine Zuweisung, die einer Slotreservierung ein Projekt, einen Ordner oder eine Organisation zuweist.

Projekte verwenden die spezifischeste Reservierung in der Ressourcenhierarchie, der sie zugewiesen sind. Eine Ordnerzuweisung überschreibt eine Organisationszuweisung und eine Projektzuweisung überschreibt eine Ordnerzuweisung. Ordner- und Organisationszuweisungen sind für Reservierungen in der Standardversion nicht verfügbar.

Damit eine Aufgabe für eine Reservierung erstellt werden kann, muss die Reservierung mindestens eines der folgenden Kriterien erfüllen:

  • Sie ist mit einer Anzahl zugewiesener Referenz-Slots ungleich null konfiguriert.

  • Sie ist mit einer Anzahl von Autoscaling-Slots ungleich null konfiguriert.

  • Es ist so konfiguriert, dass inaktive Slots verwendet werden, und es sind inaktive Slots im Projekt verfügbar.

Wenn Sie versuchen, einer Reservierung eine Ressource zuzuweisen, die mindestens eines dieser Kriterien nicht erfüllt, erhalten Sie die folgende Meldung: Assignment is pending, your project will be executed as on-demand.

Sie können einer Failover-Reservierung eine Ressource zuweisen, die Zuweisung bleibt aber am sekundären Speicherort ausstehend.

Erforderliche Berechtigungen

Zum Erstellen einer Reservierungszuweisung benötigen Sie die folgende IAM-Berechtigung (Identity and Access Management):

  • bigquery.reservationAssignments.create für das Administrationsprojekt und das Projekt, den Ordner oder die Organisation, die der Reservierung zugewiesen werden soll.

Jede der folgenden vordefinierten IAM-Rollen enthält diese Berechtigung:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Weitere Informationen zu IAM-Rollen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Einer Reservierung eine Organisation zuweisen

Console

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Klicken Sie im Navigationsmenü auf Kapazitätsverwaltung.

  3. Klicken Sie auf den Tab Reservierungen.

  4. Suchen Sie in der Tabelle der Reservierungen nach der Reservierung.

  5. Maximieren Sie die Option Aktionen.

  6. Klicken Sie auf Aufgabe erstellen.

  7. Klicken Sie im Abschnitt Aufgabe erstellen auf Durchsuchen.

  8. Suchen Sie nach der Organisation und wählen Sie sie aus.

  9. Wählen Sie im Abschnitt Jobtyp einen Jobtyp aus, der dieser Reservierung zugewiesen werden soll. Diese Optionen sind verfügbar:

    • QUERY
    • CONTINUOUS (Vorschau)
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

    Weitere Informationen zu Jobtypen finden Sie unter Reservierungszuweisungen. Dieser Standardwert ist QUERY.

    Weitere Informationen dazu, wie Sie Nutzern die Verwendung von Gemini in BigQuery mit Aufgaben der Enterprise Plus-Version ermöglichen, finden Sie unter Gemini in BigQuery einrichten.

  10. Klicken Sie auf Erstellen.

SQL

Verwenden Sie die DDL-Anweisung CREATE ASSIGNMENT, um einer Reservierung eine Organisation zuzuweisen.

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS (
      assignee = 'organizations/ORGANIZATION_ID',
      job_type = 'JOB_TYPE');

    Ersetzen Sie Folgendes:

    • ADMIN_PROJECT_ID: die Projekt-ID des Administrationsprojekts, dem die Reservierungsressource gehört
    • LOCATION: der Standort der Reservierung
    • RESERVATION_NAME: der Name der Reservierung
    • ASSIGNMENT_ID: die ID der Zuweisung

      Die ID muss für das Projekt und den Standort eindeutig sein, mit einem Kleinbuchstaben oder einer Zahl beginnen und enden und darf nur Kleinbuchstaben, Zahlen und Bindestriche enthalten.

    • ORGANIZATION_ID: die Organisations-ID
    • JOB_TYPE: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B. QUERY, CONTINUOUS (Vorschau), PIPELINE, BACKGROUND, oder ML_EXTERNAL

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

bq

Verwenden Sie den Befehl bq mk mit dem Flag --reservation_assignment, um die Jobs einer Organisation einer Reservierung zuzuweisen:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=ORGANIZATION_ID \
    --job_type=JOB_TYPE \
    --assignee_type=ORGANIZATION

Dabei gilt:

  • ADMIN_PROJECT_ID: die Projekt-ID des Administrationsprojekts, dem die Reservierungsressource gehört
  • LOCATION: der Standort der Reservierung
  • RESERVATION_NAME: der Name der Reservierung
  • ORGANIZATION_ID: die Organisations-ID
  • JOB_TYPE: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B. QUERY, CONTINUOUS (Vorschau), PIPELINE, BACKGROUND, oder ML_EXTERNAL

Wenn Sie eine Reservierungszuweisung erstellen, warten Sie mindestens fünf Minuten, bevor Sie eine Abfrage ausführen. Andernfalls wird die Abfrage möglicherweise mit der On-Demand-Abrechnung abgerechnet.

Projekt oder Ordner einer Reservierung zuweisen

Console

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Klicken Sie im Navigationsmenü auf Kapazitätsverwaltung.

  3. Klicken Sie auf den Tab Reservierungen.

  4. Suchen Sie in der Tabelle der Reservierungen nach der Reservierung.

  5. Maximieren Sie die Option Aktionen.

  6. Klicken Sie auf Aufgabe erstellen.

  7. Klicken Sie im Abschnitt Aufgabe erstellen auf Durchsuchen.

  8. Suchen Sie nach dem Projekt oder Ordner und wählen Sie es aus.

  9. Wählen Sie im Abschnitt Jobtyp einen Jobtyp aus, der dieser Reservierung zugewiesen werden soll. Diese Optionen sind verfügbar:

    • QUERY
    • CONTINUOUS (Vorschau)
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

    Weitere Informationen zu Jobtypen finden Sie unter Reservierungszuweisungen. Dieser Standardwert ist QUERY.

  10. Klicken Sie auf Erstellen.

SQL

Verwenden Sie die DDL-Anweisung CREATE ASSIGNMENT, um einer Reservierung ein Projekt zuzuweisen.

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="JOB_TYPE");

    Ersetzen Sie Folgendes:

    • ADMIN_PROJECT_ID: die Projekt-ID des Administrationsprojekts, dem die Reservierungsressource gehört
    • LOCATION: der Standort der Reservierung
    • RESERVATION_NAME: der Name der Reservierung
    • ASSIGNMENT_ID: die ID der Zuweisung

      Die ID muss für das Projekt und den Standort eindeutig sein, mit einem Kleinbuchstaben oder einer Zahl beginnen und enden und darf nur Kleinbuchstaben, Zahlen und Bindestriche enthalten.

    • PROJECT_ID: die ID des Projekts, das der Reservierung zugewiesen werden soll
    • JOB_TYPE: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B. QUERY, CONTINUOUS (Vorschau), PIPELINE, BACKGROUND, oder ML_EXTERNAL

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

bq

Verwenden Sie den Befehl bq mk mit dem Flag --reservation_assignment, um einer Reservierung Jobs zuzuweisen:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=PROJECT_ID \
    --job_type=JOB_TYPE \
    --assignee_type=PROJECT

Dabei gilt:

  • ADMIN_PROJECT_ID: die Projekt-ID des Administrationsprojekts, dem die Reservierungsressource gehört
  • LOCATION: der Standort der Reservierung
  • RESERVATION_NAME: der Name der Reservierung
  • PROJECT_ID: die ID des Projekts, das der Reservierung zugewiesen werden soll
  • JOB_TYPE: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B. QUERY, CONTINUOUS (Vorschau), PIPELINE, BACKGROUND, oder ML_EXTERNAL

Terraform

Verwenden Sie die Ressource google_bigquery_reservation_assignment:

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Im folgenden Beispiel wird der Reservierung mit dem Namen my-reservation ein Projekt zugewiesen:

resource "google_bigquery_reservation" "default" {
  name              = "my-reservation"
  location          = "us-central1"
  slot_capacity     = 100
  edition           = "ENTERPRISE"
  ignore_idle_slots = false # Use idle slots from other reservations
  concurrency       = 0     # Automatically adjust query concurrency based on available resources
  autoscale {
    max_slots = 200 # Allow the reservation to scale up to 300 slots (slot_capacity + max_slots) if needed
  }
}

data "google_project" "project" {}

resource "google_bigquery_reservation_assignment" "default" {
  assignee    = "projects/${data.google_project.project.project_id}"
  job_type    = "QUERY"
  reservation = google_bigquery_reservation.default.id
}

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud -Projekt anzuwenden.

Cloud Shell vorbereiten

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Google Cloud Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

    Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

Verzeichnis vorbereiten

Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).

  1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf. In dieser Anleitung wird die Datei als main.tf bezeichnet.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.

    Kopieren Sie den Beispielcode in das neu erstellte main.tf.

    Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.

  3. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  4. Speichern Sie die Änderungen.
  5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
    terraform init

    Fügen Sie optional die Option -upgrade ein, um die neueste Google-Anbieterversion zu verwenden:

    terraform init -upgrade

Änderungen anwenden

  1. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
    terraform plan

    Korrigieren Sie die Konfiguration nach Bedarf.

  2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply

    Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

  3. Öffnen Sie Ihr Google Cloud Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

Wenn Sie eine Reservierungszuweisung erstellen, warten Sie mindestens fünf Minuten, bevor Sie eine Abfrage ausführen. Andernfalls wird die Abfrage möglicherweise mit der On-Demand-Abrechnung abgerechnet.

Wenn Sie ein Projekt erstellen möchten, in dem nur inaktive Slots verwendet werden, erstellen Sie eine Reservierung mit zugewiesenen 0-Slots. Führen Sie dann die obigen Schritte aus, um das Projekt dieser Reservierung zuzuweisen.

none ein Projekt zuweisen

Zuweisungen an none weisen darauf hin, dass keine Zuweisung vorhanden ist. Wenn Projekten none zugewiesen ist, wird die On-Demand-Abrechnung verwendet.

SQL

Verwenden Sie die DDL-Anweisung CREATE ASSIGNMENT, um none ein Projekt zuzuweisen.

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.none.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="QUERY");

    Dabei gilt:

    • LOCATION: der Standort der Jobs, die On-Demand-Preise verwenden sollen
    • ASSIGNMENT_ID: die ID der Zuweisung

      Die ID muss für das Projekt und den Standort eindeutig sein, mit einem Kleinbuchstaben oder einer Zahl beginnen und enden und darf nur Kleinbuchstaben, Zahlen und Bindestriche enthalten.

    • PROJECT_ID: die ID des Projekts, das der Reservierung zugewiesen werden soll

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

bq

Verwenden Sie zum Zuweisen eines Projekts zu none den Befehl bq mk mit dem Flag --reservation_assignment:

bq mk \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=none \
    --job_type=QUERY \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

Dabei gilt:

  • LOCATION: der Standort der Jobs, die On-Demand-Preise verwenden sollen
  • PROJECT_ID: die ID des Projekts, das none zugewiesen werden soll

Terraform

Verwenden Sie die Ressource google_bigquery_reservation_assignment:

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

Im folgenden Beispiel wird none ein Projekt zugewiesen:

data "google_project" "project" {}

resource "google_bigquery_reservation_assignment" "default" {
  assignee    = "projects/${data.google_project.project.project_id}"
  job_type    = "QUERY"
  reservation = "projects/${data.google_project.project.project_id}/locations/us/reservations/none"
}

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud -Projekt anzuwenden.

Cloud Shell vorbereiten

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Google Cloud Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

    Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

Verzeichnis vorbereiten

Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).

  1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf. In dieser Anleitung wird die Datei als main.tf bezeichnet.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.

    Kopieren Sie den Beispielcode in das neu erstellte main.tf.

    Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.

  3. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  4. Speichern Sie die Änderungen.
  5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
    terraform init

    Fügen Sie optional die Option -upgrade ein, um die neueste Google-Anbieterversion zu verwenden:

    terraform init -upgrade

Änderungen anwenden

  1. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
    terraform plan

    Korrigieren Sie die Konfiguration nach Bedarf.

  2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply

    Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

  3. Öffnen Sie Ihr Google Cloud Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

Reservierung für eine Abfrage überschreiben

Wenn Sie Support benötigen oder Feedback zu dieser Funktion geben möchten, wenden Sie sich an bigquery-wlm-feedback@google.com.

So weisen Sie eine Abfrage zu, die in einer bestimmten Reservierung ausgeführt werden soll:

Console

  1. Rufen Sie die Seite BigQuery auf.

    BigQuery aufrufen

  2. Klicken Sie auf SQL-Abfrage.

  3. Geben Sie im Abfrageeditor eine gültige GoogleSQL-Abfrage ein.

  4. Klicken Sie auf Mehr und dann auf Abfrageeinstellungen.

  5. Heben Sie die Auswahl des Kästchens Automatische Standorteinstellung auf und wählen Sie dann die Region oder die multiregionale Region aus, in der sich die Reservierung befindet.

  6. Wählen Sie in der Liste Reservierung die Reservierung aus, in der die Abfrage ausgeführt werden soll.

  7. Klicken Sie auf Speichern.

  8. Geben Sie eine Abfrage auf dem Editor-Tab ein und führen Sie sie aus. Die Abfrage wird in der von Ihnen angegebenen Reservierung ausgeführt.

SQL

Mit der Systemvariablen @@reservation können Sie die Reservierung zuweisen, in der die Abfrage ausgeführt wird:

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    SET @@reservation='RESERVATION';
    SELECT QUERY;

    Ersetzen Sie Folgendes:

    • RESERVATION: die Reservierung, in der die Abfrage ausgeführt werden soll.

    • QUERY: Die Abfrage, die Sie ausführen möchten.

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

In der folgenden Abfrage wird beispielsweise die Anweisung SET verwendet, um die Reservierung auf test-reservation in der Multi-Region US festzulegen. Anschließend wird eine einfache Abfrage aufgerufen:

SET @@reservation='projects/project1/locations/US/reservations/test-reservation';
SELECT 42;

bq

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Führen Sie die Abfrage in Cloud Shell mit dem Befehl bq query und dem Flag --reservation_id aus:

    bq query --use_legacy_sql=false --reservation_id=RESERVATION_ID
    'QUERY'

    Ersetzen Sie Folgendes:

    • RESERVATION_ID: die Reservierung, in der Sie die Abfrage ausführen möchten.

    • QUERY: Die SQL-Anweisung für die Abfrage.

    Die folgende Abfrage wird beispielsweise in der Reservierung test-reservation in der Multiregion US ausgeführt:

    bq query --reservation_id=project1.US:test-reservation 'SELECT 42;'

API

Wenn Sie eine Reservierung mit der API angeben möchten, fügen Sie einen neuen Job ein und füllen Sie das Jobkonfigurationsattribut query mit Daten. Geben Sie Ihre Reservierung im Feld reservation an.

none eine Reservierungszuweisung in einer Abfrage zuweisen

Wenn Sie none in einer Abfrage eine Reservierungszuweisung zuweisen, wird für den Job die On-Demand-Abrechnung (keine Reservierung) erzwungen, auch wenn eine Standardreservierungszuweisung vorhanden ist. So weisen Sie none eine Reservierung zu:

SQL

Mit der Systemvariablen @@reservation können Sie none die Reservierung zuweisen, in der Ihre Abfrage ausgeführt wird:

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    SET @@reservation='none';
    SELECT QUERY;

    Ersetzen Sie Folgendes:

    • QUERY: Die Abfrage, die Sie ausführen möchten.

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

In der folgenden Abfrage wird beispielsweise die Anweisung SET verwendet, um die Abfrage zur On-Demand-Abrechnung zu zwingen. Anschließend wird eine einfache Abfrage aufgerufen:

SET @@reservation='none';
SELECT 42;

bq

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Führen Sie die Abfrage in Cloud Shell mit dem Befehl bq query und dem Flag --reservation_id aus:

    bq query --use_legacy_sql=false --reservation_id = none
    'QUERY'

    Ersetzen Sie Folgendes:

    • QUERY: Die SQL-Anweisung für die Abfrage.

    Im folgenden Beispiel wird die Abfrage beispielsweise zur Nutzung der On-Demand-Abrechnung gezwungen und dann eine einfache Abfrage aufgerufen:

    bq query --reservation_id=none 'SELECT 42;'

API

Wenn Sie eine Reservierung mit der API angeben möchten, fügen Sie einen neuen Job ein und füllen Sie das Jobkonfigurationsattribut query mit Daten. Geben Sie Ihre Reservierung im Feld reservation als none an.

BigQuery ML-Arbeitslasten-Slots zuweisen

In den folgenden Abschnitten finden Sie Informationen zu den Anforderungen an die Reservierungszuweisung für BigQuery ML-Modelle. Sie können diese Reservierungszuweisungen erstellen, indem Sie die Anleitungen unter Reservierung einer Organisation zuweisen oder Reservierung ein Projekt oder einen Ordner zuweisen befolgen.

Externe Modelle

Die folgenden BigQuery ML-Modelltypen verwenden externe Dienste:

Sie können Abfragen mit diesen Diensten reservierte Slots zuweisen, indem Sie eine Reservierungszuweisung mit dem Jobtyp ML_EXTERNAL erstellen. Wenn keine Reservierungszuweisung mit einem ML_EXTERNAL-Jobtyp gefunden wird, wird der Abfragejob mit dem On-Demand-Preismodell ausgeführt.

Bei externen Modelltrainingsjobs werden die Slots in der Reservierungszuweisung für die Schritte der Vorverarbeitung, des Trainings und der Nachverarbeitung verwendet. Während des Trainings können die Slots nicht vorzeitig beendet werden. Bei der Vor- und Nachverarbeitung können jedoch inaktive Slots verwendet werden.

Matrixfaktorisierungsmodelle

Wenn Sie ein Matrixfaktorisierungsmodell erstellen möchten, müssen Sie zuerst eine Reservierung mit der Enterprise- oder Enterprise Plus-Version von BigQuery und dann eine Reservierungszuweisung mit dem Jobtyp QUERY erstellen.

Andere Modelltypen

Für BigQuery ML-Modelle, die keine externen Modelle oder Matrixfaktorisierungsmodelle sind, können Sie Abfragen mit diesen Diensten reservierte Slots zuweisen. Dazu erstellen Sie eine Reservierungszuweisung mit dem Jobtyp QUERY. Wenn keine Reservierungszuweisung mit dem Jobtyp QUERY gefunden wird, wird der Abfragejob zu On-Demand-Preisen ausgeführt.

Reservierungszuweisungen suchen

Erforderliche Berechtigungen

Wenn Sie nach einer Reservierungszuweisung für ein bestimmtes Projekt, einen Ordner oder eine Organisation suchen möchten, benötigen Sie die folgende IAM-Berechtigung (Identity and Access Management):

  • bigquery.reservationAssignments.list für das Administrationsprojekt.

Jede der folgenden vordefinierten IAM-Rollen enthält diese Berechtigung:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor
  • BigQuery Resource Viewer
  • BigQuery User

Weitere Informationen zu IAM-Rollen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Reservierungszuweisung eines Projekts suchen

So können Sie herausfinden, ob Ihr Projekt, Ihr Ordner oder Ihre Organisation einer Reservierung zugewiesen wurde:

Console

  1. Rufen Sie in der Google Cloud Console die Seite "BigQuery" auf.

    BigQuery aufrufen

  2. Klicken Sie im Navigationsmenü auf Kapazitätsverwaltung.

  3. Klicken Sie auf den Tab Reservierungen.

  4. Maximieren Sie in der Tabelle der Reservierungen eine Reservierung, um festzustellen, welche Ressourcen dieser Reservierung zugewiesen sind, oder verwenden Sie das Feld Filter, um nach Ressourcennamen zu filtern.

SQL

Fragen Sie die Ansicht INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT ab, um zu ermitteln, welcher Reservierung die Jobs Ihres Projekts zugewiesen sind.

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

      SELECT
        assignment_id
      FROM `region-LOCATION`.INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT
      WHERE
        assignee_id = 'PROJECT_ID'
        AND job_type = 'JOB_TYPE';

    Dabei gilt:

    • LOCATION: der Standort der Reservierungen, die angezeigt werden sollen.
    • ADMIN_PROJECT_ID: die Projekt-ID des Administrationsprojekts, dem die Reservierungsressource gehört
    • PROJECT_ID: die ID des Projekts, das der Reservierung zugewiesen werden soll
    • JOB_TYPE: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B. QUERY, CONTINUOUS (Vorschau), PIPELINE, BACKGROUND, oder ML_EXTERNAL

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

bq

Verwenden Sie den Befehl bq show mit dem Flag --reservation_assignment, um zu ermitteln, welcher Reservierung die Jobs Ihres Projekts zugewiesen sind:

bq show \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --job_type=JOB_TYPE \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

Dabei gilt:

  • ADMIN_PROJECT_ID: die ID des Projekts, dem die Reservierungsressource zugeordnet ist
  • LOCATION: der Standort der Reservierungen, die angezeigt werden sollen.
  • JOB_TYPE: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B. QUERY, CONTINUOUS (Vorschau), PIPELINE, BACKGROUND, oder ML_EXTERNAL
  • PROJECT_ID: die ID des Projekts.

Reservierungszuweisungen aktualisieren

Verschieben einer Aufgabe in eine andere Reservierung

Sie können eine Zuweisung von einer Reservierung in eine andere verschieben.

Zum Verschieben einer Reservierungszuweisung benötigen Sie die folgenden IAM-Berechtigungen (Identity and Access Management) für das Administratorprojekt und die zugewiesene Ressource.

  • bigquery.reservationAssignments.create
  • bigquery.reservationAssignments.delete

Jede der folgenden vordefinierten IAM-Rollen enthält diese Berechtigungen:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Weitere Informationen zu IAM-Rollen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Verwenden Sie den Befehl bq update, um eine Zuweisung zu verschieben:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --destination_reservation_id=DESTINATION_RESERVATION \
    ADMIN_PROJECT_ID:LOCATION.RESERVATION_NAME.ASSIGNMENT_ID

Dabei gilt:

  • ADMIN_PROJECT_ID: die ID des Projekts, dem die Reservierungsressource zugeordnet ist
  • LOCATION: der Standort der neuen Reservierung
  • RESERVATION_NAME: die Reservierung, von der die Zuweisung verschoben werden soll
  • DESTINATION_RESERVATION: die Reservierung, zu der die Zuweisung verschoben werden soll
  • ASSIGNMENT_ID: die ID der Zuweisung

    Informationen zum Abrufen der ID der Zuweisung finden Sie unter Reservierungszuweisung eines Projekts auflisten.

Reservierungszuweisungen löschen

Sie können ein Projekt aus einer Reservierung entfernen, indem Sie die Reservierungszuweisung löschen. Wenn ein Projekt keiner Reservierung zugewiesen ist, werden Zuweisungen von den übergeordneten Ordnern oder Organisationen übernommen. Sind keine übergeordneten Zuweisungen vorhanden, werden On-Demand-Preise verwendet.

Wenn Sie eine Reservierungszuweisung löschen, werden die Jobs, die mit Slots dieser Reservierung ausgeführt werden, bis zum Abschluss fortgesetzt.

Erforderliche Berechtigungen

Zum Löschen einer Reservierungszuweisung benötigen Sie die folgende IAM-Berechtigung (Identity and Access Management):

  • bigquery.reservationAssignments.delete für das Administrationsprojekt und das Projekt, den Ordner oder die Organisation, die der Reservierung zugewiesen werden soll.

Jede der folgenden vordefinierten IAM-Rollen enthält diese Berechtigung:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Projekt aus einer Reservierung entfernen

So entfernen Sie ein Projekt aus einer Reservierung:

Console

  1. Rufen Sie in der Google Cloud Console die Seite "BigQuery" auf.

    BigQuery aufrufen

  2. Klicken Sie im Navigationsmenü auf Kapazitätsverwaltung.

  3. Klicken Sie auf den Tab Reservierungen.

  4. Erweitern Sie in der Tabelle der Reservierungen die Reservierung, um das Projekt zu finden.

  5. Maximieren Sie die Option Aktionen.

  6. Klicken Sie auf Löschen.

SQL

Verwenden Sie die DDL-Anweisung DROP ASSIGNMENT.

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    DROP ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`;

    Ersetzen Sie Folgendes:

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

bq

Verwenden Sie zum Entfernen eines Projekts aus einer Reservierung den Befehl bq rm mit dem Flag --reservation_assignment:

bq rm \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment RESERVATION_NAME.ASSIGNMENT_ID

Dabei gilt:

  • ADMIN_PROJECT_ID: die ID des Projekts, dem die Reservierungsressource zugeordnet ist
  • LOCATION: der Standort der Reservierung
  • RESERVATION_NAME: der Name der Reservierung
  • ASSIGNMENT_ID: die ID der Zuweisung

    Informationen zum Abrufen der ID der Zuweisung finden Sie unter Reservierungszuweisung eines Projekts finden.