Ansicht RESERVATIONS_TIMELINE
In der Ansicht INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
werden Segmente von Reservierungsmetadaten für jedes Reservierungsadministratorprojekt für jede Minute in Echtzeit angezeigt. Außerdem enthält das per_second_details
-Array Autoscaling-Details für jede Sekunde.
Erforderliche Berechtigung
Zum Abfragen der INFORMATION_SCHEMA.RESERVATION_TIMELINE
-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:
- BigQuery-Ressourcenadministrator (
roles/bigquery.resourceAdmin
) - BigQuery-Ressourcenbearbeiter (
roles/bigquery.resourceEditor
) - BigQuery-Ressourcenbetrachter (
roles/bigquery.resourceViewer
) - BigQuery-Nutzer (
roles/bigquery.user
) - BigQuery Administrator (
roles/bigquery.admin
)
Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter BigQuery-IAM-Rollen und -Berechtigungen.
Schema
Wenn Sie die INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_*
-Ansichten abfragen, enthalten die Ergebnisse eine Zeile für jede Minute jeder BigQuery-Reservierung in den letzten 180 Tagen und eine Zeile für jede Minute mit Reservierungsänderungen für alle Vorkommen, die älter als 180 Tage sind. Jeder Zeitraum beginnt mit einem ganzen Minutenintervall und entspricht genau einer Minute.
Die Ansicht INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_PROJECT
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
autoscale |
STRUCT |
Enthält 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. |
ignore_idle_slots |
BOOL |
„False“, wenn die Slot-Freigabe aktiviert ist, andernfalls „true“. |
labels |
RECORD |
Array von Labels, die der Reservierung zugeordnet sind. |
period_start |
TIMESTAMP |
Startzeit dieses einminütigen Zeitraums. |
per_second_details |
STRUCT |
Enthält Informationen zur Reservierungskapazität und -nutzung pro Sekunde. Zu den Feldern gehören:
Wenn es in dieser Minute Änderungen beim Autoscaling oder bei Reservierungen gibt, wird das Array mit 60 Zeilen gefüllt. Bei Reservierungen ohne automatische Skalierung, die sich in dieser Minute nicht ändern, ist das Array jedoch leer, da sonst dieselbe Zahl 60-mal wiederholt würde. |
project_id |
STRING |
ID des Reservierungsverwaltungsprojekts. |
project_number |
INTEGER |
Nummer des Projekts. |
reservation_id |
STRING |
Für die Verknüpfung mit der Tabelle "jobs_timeline". Hat das Format project_id:location.reservation_name. |
reservation_name |
STRING |
Der Name der Reservierung |
slots_assigned |
INTEGER |
Die Anzahl der dieser Reservierung zugewiesenen Slots. |
slots_max_assigned |
INTEGER |
Die maximale Slot-Kapazität für diese Reservierung, einschließlich Slot-Freigabe. Wenn ignore_idle_slots „true“ ist, ist dies das Gleiche wie slots_assigned . Andernfalls ist dies die Gesamtzahl der Slots in allen Kapazitätszusicherungen des Administrationsprojekts. |
max_slots |
INTEGER |
Die maximale Anzahl von Slots, die für diese Reservierung verwendet werden können, einschließlich Referenz-Slots (slot_capacity ), inaktiver Slots (wenn ignore_idle_slots „false“ ist) und Autoscaling-Slots. Dieses Feld wird von Nutzern angegeben, um die Funktion zur Vorhersage von Reservierungen zu verwenden. |
scaling_mode |
STRING |
Der Skalierungsmodus für die Reservierung, der bestimmt, wie die Reservierung von der Baseline auf max_slots skaliert wird. Dieses Feld wird von Nutzern angegeben, um die Funktion zur Vorhersage von Reservierungen zu verwenden. |
Bereich und Syntax
Für Abfragen dieser Ansicht muss ein Regions-Qualifier verwendet werden. Wenn Sie keinen Regions-Qualifier angeben, werden Metadaten aus allen Regionen abgerufen. In der folgenden Tabelle werden der Regionsbereich und der Ressourcenbereich für diese Ansicht erläutert:
Ansichtsname | Ressourcenbereich | Regionsbereich |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE[_BY_PROJECT] |
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`
Beispiele
Beispiel: Gesamte Slot-Nutzung pro Sekunde
Wenn Sie die Abfrage für ein anderes Projekt als Ihr Standardprojekt ausführen möchten, fügen Sie die Projekt-ID im folgenden Format hinzu:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
.
Das folgende Beispiel zeigt die Slotnutzung pro Sekunde aus Projekten, die YOUR_RESERVATION_ID
zugewiesen sind (für alle Jobs übergreifend):
SELECT s.start_time AS period_start, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(s.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(s.slots_max_assigned) AS estimated_slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.reservation_id = 'YOUR_RESERVATION_ID' AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start ORDER BY period_start DESC;
Das Ergebnis sieht etwa so aus:
+-----------------------+---------------------+--------------------------+------------------------------+ | period_start | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| 96.753 | 100 | 100 | |2021-06-08 21:33:57 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+--------------------------+------------------------------+
Beispiel: Slot-Nutzung nach Reservierung
Im folgenden Beispiel wird die Slot-Nutzung pro Sekunde für jede Reservierung des letzten Tages gezeigt:
SELECT s.start_time AS period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 AS period_slot_seconds, ANY_VALUE(res.slots_assigned) AS estimated_slots_assigned, ANY_VALUE(res.slots_max_assigned) AS estimated_slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON jobs.reservation_id = res.reservation_id JOIN res.per_second_details s ON jobs.period_start = s.start_time WHERE jobs.job_creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND res.period_start BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP() AND (jobs.statement_type != "SCRIPT" OR jobs.statement_type IS NULL) -- Avoid duplicate byte counting in parent and children jobs. GROUP BY period_start, reservation_id ORDER BY period_start DESC, reservation_id;
Das Ergebnis sieht etwa so aus:
+-----------------------+----------------+---------------------+--------------------------+------------------------------+ | period_start | reservation_id | period_slot_seconds | estimated_slots_assigned | estimated_slots_max_assigned | +-----------------------+----------------+---------------------+--------------------------+------------------------------+ |2021-06-08 21:33:59 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:58 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:57 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:56 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+--------------------------+------------------------------+