Ansicht RESERVATIONS
Die Ansicht INFORMATION_SCHEMA.RESERVATIONS
enthält eine nahezu in Echtzeit aktualisierte Liste aller aktuellen Reservierungen im Administrationsprojekt. Jede Zeile steht für eine einzelne aktuelle Reservierung. Eine aktuelle Reservierung ist eine Reservierung, die nicht gelöscht wurde. Weitere Informationen zur Reservierung finden Sie unter Einführung in Reservierungen.
Erforderliche Berechtigung
Zum Abfragen der INFORMATION_SCHEMA.RESERVATIONS
-Ansicht benötigen Sie die IAM-Berechtigung (Identity and Access Management) bigquery.reservations.list
für das Projekt.
Jede der folgenden vordefinierten IAM-Rollen enthält die erforderliche Berechtigung:
roles/bigquery.resourceAdmin
roles/bigquery.resourceEditor
roles/bigquery.resourceViewer
roles/bigquery.user
roles/bigquery.admin
Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Schema
Die Ansicht INFORMATION_SCHEMA.RESERVATIONS
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
ddl |
STRING |
Die zum Erstellen dieser Reservierung verwendete DDL-Anweisung. |
project_id |
STRING |
ID des Administrationsprojekts. |
project_number |
INTEGER |
Nummer des Administrationsprojekts. |
reservation_name |
STRING |
Vom Nutzer bereitgestellter Reservierungsname. |
ignore_idle_slots |
BOOL |
Bei "false" kann jede Abfrage, die diese Reservierung verwendet, inaktive Slots aus anderen Kapazitätszusicherungen verwenden. |
slot_capacity |
INTEGER |
Referenz der Reservierung. |
target_job_concurrency |
INTEGER |
Die Zielanzahl an Abfragen, die gleichzeitig ausgeführt werden können. Diese wird durch die verfügbaren Ressourcen begrenzt. Wenn der Wert „0“ ist, wird er automatisch anhand der verfügbaren Ressourcen berechnet. |
autoscale |
STRUCT |
Informationen zur Autoscaling-Kapazität der Reservierung. Zu den Feldern gehören:
|
edition |
STRING |
Die mit dieser Reservierung verknüpfte Edition. Weitere Informationen zu Editionen finden Sie unter Einführung in BigQuery-Editionen. |
Bereich und Syntax
Für Abfragen dieser Ansicht muss ein Regions-Qualifier verwendet werden. Wenn Sie keinen regionalen Qualifier angeben, werden Metadaten aus allen Regionen abgerufen. In der folgenden Tabelle wird der Regionsbereich für diese Ansicht erläutert:
Ansichtsname | Ressourcenbereich | Regionsbereich |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS[_BY_PROJECT] |
auf Projektebene | REGION |
Optional: PROJECT_ID
: die ID Ihres Google Cloud-Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.
REGION
: ist ein beliebiger Dataset-Regionsname.
Beispiel: `region-us`
Reservierungs- und Jobansichten zusammenführen
Die Jobansichten enthalten die Spalte reservation_id
. Wenn Ihr Job in einem Projekt mit einer zugewiesenen Reservierung ausgeführt wurde, hat reservation_id
folgendes Format: reservation-admin-project:reservation-location.reservation-name
.
Wenn Sie die Reservierungs- und Jobansichten verbinden möchten, können Sie die Verbindung zwischen der Spalte für die Jobansichten (reservation_id
) und den Spalten für die Reservierungsansichten project_id
und reservation_name
herstellen. Das folgende Beispiel zeigt ein Beispiel für die Verwendung der JOIN
-Klausel zwischen den Reservierungs- und den Jobansichten.
Beispiel
Im folgenden Beispiel sehen Sie die Slotnutzung, Slotkapazität und zugewiesene Reservierung für ein Projekt mit einer Reservierungszuweisung in der letzten Stunde. Die Slot-Nutzung wird in Einheiten von Slot-Millisekunden pro Sekunde angegeben.
WITH job_data AS ( SELECT job.period_start, job.reservation_id, job.period_slot_ms, job.job_id, job.job_type FROM `my-project.region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE AS job WHERE job.period_start > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)) SELECT reservation.reservation_name AS reservation_name, job.period_start, reservation.slot_capacity, job.period_slot_ms, job.job_id, job.job_type FROM job_data AS job INNER JOIN `reservation-admin-project.region-us`.INFORMATION_SCHEMA.RESERVATIONS AS reservation ON (job.reservation_id = CONCAT(reservation.project_id, ":", "US", ".", reservation.reservation_name));
Die Ausgabe sieht etwa so aus:
+------------------+---------------------+---------------+----------------+------------------+----------+
| reservation_name | period_start | slot_capacity | period_slot_ms | job_id | job_type |
+------------------+---------------------+---------------+----------------+------------------+----------+
| my_reservation | 2021-04-30 17:30:54 | 100 | 11131 | bquxjob_66707... | QUERY |
| my_reservation | 2021-04-30 17:30:55 | 100 | 49978 | bquxjob_66707... | QUERY |
| my_reservation | 2021-04-30 17:30:56 | 100 | 9038 | bquxjob_66707... | QUERY |
| my_reservation | 2021-04-30 17:30:57 | 100 | 17237 | bquxjob_66707... | QUERY |
Bei dieser Abfrage werden mit der Ansicht RESERVATIONS
Reservierungsinformationen aufgerufen. Wenn sich die Reservierungen in der letzten Stunde geändert haben, ist die Spalte reservation_slot_capacity
möglicherweise nicht korrekt.
Die Abfrage verknüpft RESERVATIONS
mit JOBS_TIMELINE
, um die Jobzeitabschnitte mit den Reservierungsinformationen zu verknüpfen.