Ansicht RESERVATIONS_TIMELINE
In der Ansicht INFORMATION_SCHEMA.RESERVATIONS_TIMELINE
werden für jede Minute Segmente von Reservierungsmetadaten nahezu in Echtzeit für jedes Reservierungsadministratorprojekt angezeigt. Um die Slot-Nutzung mit der Slotkapazität zu vergleichen, können Sie die Reservierungsinformationen mit der Jobzeitachse mithilfe der Ansicht der Reservierungszeitachse kombinieren.
Schema
Wenn Sie die INFORMATION_SCHEMA.RESERVATIONS_TIMELINE_BY_*
-Ansichten abfragen, enthalten die Ergebnisse eine Minute für jede Minute jeder BigQuery-Reservierung. 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 |
---|---|---|
period_start |
TIMESTAMP |
Startzeit dieses einminütigen Zeitraums. |
project_id |
STRING |
ID des Reservierungs-Administratorprojekts. |
project_number |
INTEGER |
Nummer des Projekts. |
reservation_name |
STRING |
Der Name der Reservierung |
ignore_idle_slots |
BOOL |
„False“, wenn die Slot-Freigabe aktiviert ist, andernfalls „true“. |
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 Admin-Projekts. |
autoscale |
STRUCT |
Informationen zur Autoscaling-Kapazität der Reservierung. Zu den Feldern gehören:
|
reservation_id |
STRING |
Für die Verknüpfung mit der Tabelle "jobs_timeline". Hat das Format project_id:location.reservation_name. |
Bereich und Syntax
Für Abfragen dieser Ansicht muss ein Regions-Qualifier verwendet werden. Wenn Sie keinen regionalen Qualifizierer 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 Minute
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. Beispiel:
`myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
.
Das folgende Beispiel zeigt die Slotnutzung pro Minute aus Projekten, die YOUR_RESERVATION_ID
zugewiesen sind (für alle Jobs übergreifend):
SELECT res.period_start, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slot_assigned, ANY_VALUE(res.slots_max_assigned) AS slots_max_assigned FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start AND jobs.reservation_id = res.reservation_id WHERE jobs.job_creation_time 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_minutes | slots_assigned| slots_max_assigned| +-----------------------+---------------------+---------------+-------------------+ |2021-06-08 21:33:00 UTC| 100.000 | 100 | 100 | |2021-06-08 21:32:00 UTC| 96.753 | 100 | 100 | |2021-06-08 21:31:00 UTC| 41.668 | 100 | 100 | +-----------------------+---------------------+---------------+-------------------+
Beispiel: Slot-Nutzung nach Reservierung
Im folgenden Beispiel wird die Slot-Nutzung pro Minute für jede Reservierung des letzten Tages gezeigt:
SELECT res.period_start, res.reservation_id, SUM(jobs.period_slot_ms) / 1000 / 60 AS period_slot_minutes, ANY_VALUE(res.slots_assigned) AS slots_assigned, ANY_VALUE(res.slots_max_assigned) AS slots_max_assigned, FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION jobs JOIN `region-us`.INFORMATION_SCHEMA.RESERVATIONS_TIMELINE res ON TIMESTAMP_TRUNC(jobs.period_start, MINUTE) = res.period_start AND jobs.reservation_id = res.reservation_id WHERE jobs.job_creation_time 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_minutes | slot_assigned | slots_max_assigned | +-----------------------+----------------+---------------------+---------------+--------------------+ |2021-06-08 21:33:00 UTC| prod01 | 100.000 | 100 | 100 | |2021-06-08 21:33:00 UTC| prod02 | 177.201 | 200 | 500 | |2021-06-08 21:32:00 UTC| prod01 | 96.753 | 100 | 100 | |2021-06-08 21:32:00 UTC| prod02 | 182.329 | 200 | 500 | +-----------------------+----------------+---------------------+---------------+--------------------+