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 spezifischste 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 der Standardversion nicht verfügbar.
Damit eine Zuweisung 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 inaktive Slots im Projekt gibt.
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 hängt jedoch vom sekundären Standort ab.
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
Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.
Gehen Sie im Navigationsbereich zum Abschnitt Kapazitätsverwaltung.
Klicken Sie auf den Tab Reservierungen.
Suchen Sie in der Tabelle der Reservierungen nach der Reservierung.
Maximieren Sie die Option
Aktionen.Klicken Sie auf Aufgabe erstellen.
Klicken Sie im Abschnitt Aufgabe erstellen auf Durchsuchen.
Suchen Sie nach der Organisation und wählen Sie sie aus.
Wählen Sie im Abschnitt Jobtyp einen Jobtyp aus, der dieser Reservierung zugewiesen werden soll. Diese Optionen sind verfügbar:
QUERY
PIPELINE
BACKGROUND
ML_EXTERNAL
Weitere Informationen zu Jobtypen finden Sie unter Reservierungszuweisungen. Dieser Standardwert ist
QUERY
.Klicken Sie auf Erstellen.
SQL
Verwenden Sie die DDL-Anweisung CREATE ASSIGNMENT
, um einer Reservierung eine Organisation zuzuweisen.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
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örtLOCATION
: der Standort der ReservierungRESERVATION_NAME
: der Name der ReservierungASSIGNMENT_ID
: die ID der ZuweisungDie 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-IDJOB_TYPE
: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B.QUERY
,PIPELINE
,BACKGROUND
oderML_EXTERNAL
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örtLOCATION
: der Standort der ReservierungRESERVATION_NAME
: der Name der ReservierungORGANIZATION_ID
: die Organisations-IDJOB_TYPE
: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B.QUERY
,PIPELINE
,BACKGROUND
oderML_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
Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.
Gehen Sie im Navigationsbereich zum Abschnitt Kapazitätsverwaltung.
Klicken Sie auf den Tab Reservierungen.
Suchen Sie in der Tabelle der Reservierungen nach der Reservierung.
Maximieren Sie die Option
Aktionen.Klicken Sie auf Aufgabe erstellen.
Klicken Sie im Abschnitt Aufgabe erstellen auf Durchsuchen.
Suchen Sie nach dem Projekt oder Ordner und wählen Sie es aus.
Wählen Sie im Abschnitt Jobtyp einen Jobtyp aus, der dieser Reservierung zugewiesen werden soll. Diese Optionen sind verfügbar:
QUERY
PIPELINE
BACKGROUND
ML_EXTERNAL
Weitere Informationen zu Jobtypen finden Sie unter Reservierungszuweisungen. Dieser Standardwert ist
QUERY
.Klicken Sie auf Erstellen.
SQL
Verwenden Sie die DDL-Anweisung CREATE ASSIGNMENT
, um einer Reservierung ein Projekt zuzuweisen.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
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örtLOCATION
: der Standort der ReservierungRESERVATION_NAME
: der Name der ReservierungASSIGNMENT_ID
: die ID der ZuweisungDie 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 sollJOB_TYPE
: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B.QUERY
,PIPELINE
,BACKGROUND
oderML_EXTERNAL
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örtLOCATION
: der Standort der ReservierungRESERVATION_NAME
: der Name der ReservierungPROJECT_ID
: die ID des Projekts, das der Reservierung zugewiesen werden sollJOB_TYPE
: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B.QUERY
,PIPELINE
,BACKGROUND
oderML_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.
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.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
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="JOB_TYPE");
Dabei gilt:
LOCATION
: der Standort der Jobs, die On-Demand-Preise verwenden sollenASSIGNMENT_ID
: die ID der ZuweisungDie 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
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 sollenPROJECT_ID
: die ID des Projekts, dasnone
zugewiesen werden soll
BigQuery ML-Arbeitslasten-Slots zuweisen
Die folgenden BigQuery ML-Modelltypen verwenden externe Dienste:
- Autoencoder
- AutoML
- Boosted Tree
- Neuronales Deep-Learning-Netzwerk (DNN)
- Random Forest
- Wide-and-Deep-Netzwerk
Sie können Abfragen mit diesen Diensten reservierte Slots zuweisen. Verwenden Sie dazu den Zuweisungstyp ML_EXTERNAL
. Wenn kein ML_EXTERNAL
-Zuweisungstyp gefunden wird, wird der Abfragejob als on demand ausgeführt.
Verwenden Sie den Befehl bq mk
mit dem Flag --reservation_assignment
und setzen Sie das Flag --job_type
auf ML_EXTERNAL
.
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --reservation_assignment \ --reservation_id=RESERVATION_NAME \ --job_type=ML_EXTERNAL\ --assignee_id=PROJECT_ID \ --assignee_type=PROJECT
Dabei gilt:
ADMIN_PROJECT_ID
: die ID des Projekts, dem die Reservierungsressource zugeordnet istLOCATION
: der Standort der ReservierungRESERVATION_NAME
: der Name der ReservierungPROJECT_ID
: die ID des Projekts, das der Reservierung zugewiesen werden soll
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
Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.
Gehen Sie im Navigationsbereich zum Abschnitt Kapazitätsverwaltung.
Klicken Sie auf den Tab Reservierungen.
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.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
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örtPROJECT_ID
: die ID des Projekts, das der Reservierung zugewiesen werden sollJOB_TYPE
: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B.QUERY
,PIPELINE
,BACKGROUND
oderML_EXTERNAL
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 istLOCATION
: der Standort der Reservierungen, die angezeigt werden sollen.JOB_TYPE
: der Typ des Jobs, der dieser Reservierung zugewiesen werden soll, z. B.QUERY
,PIPELINE
,BACKGROUND
oderML_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 istLOCATION
: der Standort der neuen ReservierungRESERVATION_NAME
: die Reservierung, von der die Zuweisung verschoben werden sollDESTINATION_RESERVATION
: die Reservierung, zu der die Zuweisung verschoben werden sollASSIGNMENT_ID
: die ID der ZuweisungInformationen 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 aus dieser Reservierung ausgeführt werden, bis zum Abschluss ausgeführt.
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
Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.
Gehen Sie im Navigationsbereich zum Abschnitt Kapazitätsverwaltung.
Klicken Sie auf den Tab Reservierungen.
Erweitern Sie in der Tabelle der Reservierungen die Reservierung, um das Projekt zu finden.
Maximieren Sie die Option
Aktionen.Klicken Sie auf Löschen.
SQL
Verwenden Sie die DDL-Anweisung DROP ASSIGNMENT
.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Geben Sie im Abfrageeditor die folgende Anweisung ein:
DROP ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`;
Ersetzen Sie Folgendes:
ADMIN_PROJECT_ID
: die Projekt-ID des Administrationsprojekts, dem die Reservierungsressource gehörtLOCATION
: der Standort der ReservierungRESERVATION_NAME
: der Name der ReservierungASSIGNMENT_ID
: die ID der ZuweisungInformationen zum Abrufen der ID der Zuweisung finden Sie unter Reservierungszuweisung eines Projekts auflisten.
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 istLOCATION
: der Standort der ReservierungRESERVATION_NAME
: der Name der ReservierungASSIGNMENT_ID
: die ID der ZuweisungInformationen zum Abrufen der ID der Zuweisung finden Sie unter Reservierungszuweisung eines Projekts finden.