Ansicht JOBS_TIMELINE_BY_ORGANIZATION
Die Ansicht INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
enthält BigQuery-Metadaten in nahezu Echtzeit nach Zeitabschnitt für alle Jobs, die in der Organisation gesendet wurden, die mit dem aktuellen Projekt verknüpft ist.
Diese Ansicht enthält derzeit ausgeführte und abgeschlossene Jobs.
Erforderliche Berechtigungen
Zum Abfragen der Ansicht INFORMATION_SCHEMA.JOBS_TIMELINE_BY_ORGANIZATION
benötigen Sie die IAM-Berechtigung (Identity and Access Management) bigquery.jobs.listAll
für das Projekt.
Jede der folgenden vordefinierten IAM-Rollen enthält die erforderliche Berechtigung:
- BigQuery-Ressourcen-Administrator auf Organisationsebene
- Eigentümer der Organisation
- Organisationsadministrator
Die Schematabelle JOBS_BY_ORGANIZATION
ist nur für Nutzer mit definierten Google Cloud-Organisationen verfügbar.
Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Schema
Wenn Sie die INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
-Ansichten abfragen, enthalten die Ergebnisse eine Zeile für jede Ausführungssekunde des BigQuery-Jobs. Jeder Zeitraum beginnt mit einem ganzen Sekundenintervall und entspricht genau einer Sekunde.
Die Ansicht INFORMATION_SCHEMA.JOBS_TIMELINE_BY_*
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
period_start |
TIMESTAMP |
Startzeit dieses Zeitraums. |
period_slot_ms |
INTEGER |
Genutzte Slotmillisekunden in diesem Zeitraum. |
period_shuffle_ram_usage_ratio |
FLOAT |
Shuffle-Nutzungsverhältnis im ausgewählten Zeitraum. |
project_id |
STRING |
(Clustering-Spalte) ID des Projekts |
project_number |
INTEGER |
Nummer des Projekts. |
folder_numbers |
REPEATED INTEGER |
Nummern-IDs der Ordner, die das Projekt enthalten, beginnend mit dem Ordner, der das Projekt unmittelbar enthält, gefolgt von dem Ordner, der den Unterordner enthält, und so weiter. Wenn „folder_numbers“ beispielsweise „[1, 2, 3]“ ist, enthält der Ordner „1“ unmittelbar das Projekt, der Ordner „2“ enthält „1“ und der Ordner „3“ enthält „2“. |
user_email |
STRING |
(Clustering-Spalte) E-Mail-Adresse oder Dienstkonto des Nutzers, der den Job ausgeführt hat |
job_id |
STRING |
ID des Jobs, z. B. bquxjob_1234 . |
job_type |
STRING |
Typ des Jobs. Kann QUERY , LOAD , EXTRACT , COPY oder null sein. Der Jobtyp null gibt einen internen Job an, z. B. die Auswertung einer Anweisung des Skriptjobs oder die Aktualisierung der materialisierten Ansicht. |
statement_type |
STRING |
Typ der Abfrageanweisung, sofern gültig. Beispiel: SELECT , INSERT , UPDATE oder DELETE . |
job_creation_time |
TIMESTAMP |
(Partitionierungsspalte) Erstellungszeit dieses Jobs. Die Partitionierung basiert auf der UTC-Zeit dieses Zeitstempels. |
job_start_time |
TIMESTAMP |
Startzeit dieses Jobs. |
job_end_time |
TIMESTAMP |
Endzeit dieses Jobs. |
state |
STRING |
Ausführungsstatus des Jobs am Ende dieses Zeitraums. Gültige Statuswerte sind PENDING , RUNNING und DONE . |
reservation_id |
STRING |
Name der primären Reservierung, die diesem Job am Ende dieses Zeitraums zugewiesen wird, sofern zutreffend. |
total_bytes_processed |
INTEGER |
Gesamtzahl der vom Job verarbeiteten Byte. |
error_result |
RECORD |
Fehlerdetails (falls vorhanden) als
ErrorProto.
. |
cache_hit |
BOOLEAN |
Ob die Abfrageergebnisse dieses Jobs aus einem Cache stammen. |
period_estimated_runnable_units |
INTEGER |
Arbeitseinheiten, die in diesem Zeitraum sofort geplant werden können. Zusätzliche Slots für diese Arbeitseinheiten beschleunigen Ihre Abfrage, sofern keine andere Abfrage in der Reservierung zusätzliche Slots benötigt. |
Datenaufbewahrung
Diese Ansicht enthält aktuell ausgeführte Jobs und den Jobverlauf der letzten 180 Tage.
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.JOBS_TIMELINE_BY_ORGANIZATION |
Organisation, die das angegebene Projekt enthält | 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 | +-----------------------+----------------+---------------------+---------------+--------------------+