Ansicht JOBS_TIMELINE_BY_FOLDER
Die Ansicht INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
enthält BigQuery-Metadaten in nahezu Echtzeit nach Zeitabschnitt für alle Jobs, die im übergeordneten Ordner des aktuellen Projekts eingereicht wurden, einschließlich der Jobs in Unterordnern.
Diese Ansicht enthält ausgeführte und abgeschlossene Jobs.
Erforderliche Berechtigungen
Zum Abfragen der INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
-Ansicht benötigen Sie die IAM-Berechtigung (Identity and Access Management) bigquery.jobs.listAll
für den übergeordneten Ordner. Jede der folgenden vordefinierten IAM-Rollen enthält die erforderliche Berechtigung:
- Ordneradministrator
- BigQuery-Administrator
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. |
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 . |
priority |
STRING |
Die Priorität dieses Jobs Zulässige Werte: INTERACTIVE
und BATCH . |
parent_job_id |
STRING |
ID des übergeordneten Jobs, sofern vorhanden. |
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. |
edition |
STRING |
Die mit der Reservierung verknüpfte Edition, die diesem Job zugewiesen ist. Weitere Informationen zu Editionen finden Sie unter Einführung in BigQuery-Editionen. |
total_bytes_billed |
INTEGER |
Wenn das Projekt für die Verwendung von On-Demand-Preisen konfiguriert ist, enthält dieses Feld die Gesamtzahl der für den Job in Rechnung gestellten Byte. Wenn das Projekt für die Verwendung von Pauschalpreisen konfiguriert ist, werden Ihnen keine Byte in Rechnung gestellt. Dieses Feld dient nur zur Information. |
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_shuffle_ram_usage_ratio |
FLOAT |
Shuffle-Nutzungsverhältnis im ausgewählten Zeitraum. |
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. |
transaction_id |
STRING |
ID der Transaktion, in der dieser Job ausgeführt wurde (falls vorhanden). (Vorschau) |
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 Regions-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_FOLDER |
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`
Beispiele
Die folgenden Beispiele zeigen, wie die Methode INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER
abgefragt wird.
Anzahl der eindeutigen Jobs abrufen
Die folgende Abfrage zeigt die Anzahl der eindeutigen Jobs an, die pro Minute im Ordner des angegebenen Projekts ausgeführt werden:
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, COUNT(DISTINCT job_id) AS unique_jobs FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f GROUP BY per_start ORDER BY per_start DESC;
Das Ergebnis sieht etwa so aus:
+---------------------------+---------------------------------+ | per_start | unique_jobs | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 5 | | 2019-10-10 00:03:00 UTC | 2 | | 2019-10-10 00:02:00 UTC | 3 | | 2019-10-10 00:01:00 UTC | 4 | | 2019-10-10 00:00:00 UTC | 4 | +---------------------------+---------------------------------+
Verwendete Slot-Zeit berechnen
Die folgende Abfrage zeigt die pro Minute verwendete Slot-Zeit im Ordner des angegebenen Projekts an:
SELECT TIMESTAMP_TRUNC(period_start, MINUTE) AS per_start, SUM(period_slot_ms) AS slot_ms FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_FOLDER, UNNEST(folder_numbers) f WHERE my_folder_number = f AND reservation_id = "my reservation id" AND statement_type != "SCRIPT" GROUP BY per_start ORDER BY per_start DESC;
Das Ergebnis sieht etwa so aus:
+---------------------------+---------------------------------+ | per_start | slot_ms | +---------------------------+---------------------------------+ | 2019-10-10 00:04:00 UTC | 500 | | 2019-10-10 00:03:00 UTC | 1000 | | 2019-10-10 00:02:00 UTC | 3000 | | 2019-10-10 00:01:00 UTC | 4000 | | 2019-10-10 00:00:00 UTC | 4000 | +---------------------------+---------------------------------+