Ansicht JOBS_BY_ORGANIZATION
Die Ansicht INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
enthält Metadaten nahezu in Echtzeit zu allen Jobs, die in der Organisation gesendet wurden, die mit dem aktuellen Projekt verknüpft ist.
Erforderliche Rolle
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Ressourcenbetrachter (roles/bigquery.resourceViewer
) für Ihre Organisation zuzuweisen, um die Berechtigung zu erhalten, die Sie zum Abfragen der INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
-Ansicht benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigung bigquery.jobs.listAll
, die zum Abfragen der INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
-Ansicht erforderlich ist.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Die Schematabelle ist nur für Nutzer mit definierten Google Cloud-Organisationen verfügbar.
Weitere Informationen zu BigQuery-Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Schema
Die zugrunde liegenden Daten werden nach der Spalte creation_time
partitioniert und nach project_id
und user_email
geclustert. Die query_info
-Spalte enthält zusätzliche Informationen zu Ihren Abfragejobs.
Die Ansicht INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
hat das folgende Schema:
Spaltenname | Datentyp | Wert |
---|---|---|
bi_engine_statistics |
RECORD |
Wenn das Projekt für die Verwendung der BI Engine-SQL-Schnittstelle konfiguriert ist, dann enthält dieses Feld BiEngineStatistics.
Andernfalls NULL .
|
cache_hit |
BOOLEAN |
Ob die Abfrageergebnisse dieses Jobs aus einem Cache stammen.
Wenn Sie einen Abfragejob mit mehreren Anweisungen haben, ist cache_hit für Ihre übergeordnete Abfrage NULL .
|
creation_time |
TIMESTAMP |
(Partitionierungsspalte) Erstellungszeit dieses Jobs. Die Partitionierung basiert auf der UTC-Zeit dieses Zeitstempels. |
destination_table |
RECORD |
Zieltabelle für etwaige Ergebnisse. |
end_time |
TIMESTAMP |
Die Endzeit dieses Jobs in Millisekunden seit der Epoche. Dieses Feld gibt den Zeitpunkt an, zu dem der Job in den Status DONE wechselt. |
error_result |
RECORD |
Details zu Fehlern als Objekte vom Typ ErrorProto. |
job_creation_reason.code |
STRING |
Gibt den allgemeinen Grund an, warum ein Job erstellt wurde. Folgende Werte sind möglich:
|
job_id |
STRING |
Die ID des Jobs, falls ein Job erstellt wurde. Andernfalls die Abfrage-ID einer Abfrage, die den Modus für kurze Abfragen verwendet. Beispiel: bquxjob_1234 . |
job_stages |
RECORD |
Abfragephasen des Jobs.
Hinweis: Die Werte dieser Spalte sind leer, wenn Sie Abfragen aus Tabellen mit Zugriffsrichtlinien auf Zeilenebene durchgeführt haben. Weitere Informationen finden Sie unter Best Practices für die Sicherheit auf Zeilenebene in BigQuery. |
job_type |
STRING |
Typ des Jobs. Kann QUERY , LOAD , EXTRACT , COPY oder NULL sein. Ein NULL -Wert gibt einen internen Job an, z. B. die Auswertung einer Anweisung eines Skriptjobs oder die Aktualisierung einer materialisierten Ansicht.
|
labels |
RECORD |
Array aus Labels, die als Schlüssel/Wert-Paare auf den Job angewendet werden. |
parent_job_id |
STRING |
ID des übergeordneten Jobs, sofern vorhanden. |
priority |
STRING |
Die Priorität dieses Jobs Zulässige Werte: INTERACTIVE
und BATCH . |
project_id |
STRING |
(Clustering-Spalte) Die ID des Projekts. |
project_number |
INTEGER |
Die Nummer des Projekts. |
query |
STRING |
SQL-Abfragetext. Nur die Ansicht JOBS_BY_PROJECT enthält die Abfragespalte. |
referenced_tables |
RECORD |
Array von Tabellen, auf die der Job verweist. Wird nur für Abfragejobs ausgefüllt, die keine Cache-Treffer sind. |
reservation_id |
STRING |
Name der primären Reservierung, die diesem Job zugewiesen ist, im Format RESERVATION_ADMIN_PROJECT:RESERVATION_LOCATION.RESERVATION_NAME .In dieser Ausgabe gilt:
|
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. |
session_info |
RECORD |
Details zur Sitzung, in der dieser Job ausgeführt wurde, sofern vorhanden. |
start_time |
TIMESTAMP |
Die Startzeit dieses Jobs in Millisekunden seit der Epoche. Dieses Feld gibt den Zeitpunkt an, zu dem der Job vom Status PENDING in RUNNING oder DONE wechselt. |
state |
STRING |
Ausführungsstatus des Jobs. Gültige Statuswerte sind PENDING , RUNNING und DONE .
|
statement_type |
STRING |
Der Typ der Abfrageanweisung. Beispiel: DELETE , INSERT , SCRIPT , SELECT oder UPDATE . Eine Liste der gültigen Werte finden Sie unter QueryStatementType.
|
timeline |
RECORD |
Abfragezeitachse des Jobs. Enthält Snapshots der Abfrageausführung. |
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.
Hinweis: Die Werte dieser Spalte sind leer, wenn Sie Abfragen aus Tabellen mit Zugriffsrichtlinien auf Zeilenebene durchgeführt haben. Weitere Informationen finden Sie unter Best Practices für die Sicherheit auf Zeilenebene in BigQuery. |
total_bytes_processed |
INTEGER |
Gesamtzahl der vom Job verarbeiteten Byte. Hinweis: Die Werte dieser Spalte sind leer, wenn Sie Abfragen aus Tabellen mit Zugriffsrichtlinien auf Zeilenebene durchgeführt haben. Weitere Informationen finden Sie unter Best Practices für die Sicherheit auf Zeilenebene in BigQuery. |
total_modified_partitions |
INTEGER |
Gesamtzahl der Partitionen, die der Job geändert hat. Dieses Feld wird für LOAD - und QUERY -Jobs ausgefüllt.
|
total_slot_ms |
INTEGER |
Slotmillisekunden für den Job über seine gesamte Dauer im Status RUNNING , einschließlich Wiederholungen. |
transaction_id |
STRING |
ID der Transaktion, in der dieser Job ausgeführt wurde (falls vorhanden). (Vorschau) |
user_email |
STRING |
(Clustering-Spalte) E-Mail-Adresse oder Dienstkonto des Nutzers, der den Job ausgeführt hat. |
query_info.resource_warning |
STRING |
Die Warnmeldung, die angezeigt wird, wenn die Ressourcennutzung während der Abfrageverarbeitung über dem internen Schwellenwert des Systems liegt. Bei einem erfolgreichen Abfragejob kann das resource_warning -Feld ausgefüllt sein. Mit resource_warning erhalten Sie zusätzliche Datenpunkte, um Ihre Abfragen zu optimieren und das Monitoring für Leistungstrends eines entsprechenden Abfragesatzes einzurichten. Verwenden Sie dazu query_hashes .
|
query_info.query_hashes.normalized_literals |
STRING |
Enthält die Hashes der Abfrage. normalized_literals ist ein hexadezimaler STRING -Hash, der Kommentare, Parameterwerte, UDFs und Literale ignoriert.
Dieses Feld wird bei erfolgreichen GoogleSQL-Abfragen angezeigt, die keine Cache-Treffer sind. |
query_info.performance_insights |
RECORD |
Leistungsstatistiken für den Job. |
query_info.optimization_details |
STRUCT |
Die verlaufsbasierten Optimierungen für den Job. |
transferred_bytes |
INTEGER |
Gesamtzahl der übertragenen Byte für cloudübergreifende Abfragen, wie die cloudübergreifenden BigQuery Omni-Übertragungsjobs. |
materialized_view_statistics |
RECORD |
Statistiken von materialisierten Ansichten, die in einem Abfragejob berücksichtigt werden. (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. In der folgenden Tabelle wird der Regionsbereich für diese Ansicht erläutert:
Ansichtsname | Ressourcenbereich | Regionsbereich |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_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
: beliebiger Dataset-Regionsname.
Beispiel: region-us
.
Beispiel
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_BY_ORGANIZATION
PROJECT_ID
: die ID des Projekts.REGION_NAME
: Region für Ihr Projekt
Beispiel: `myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
.
5 Jobs, die heute die meisten Byte gescannt haben
Das folgende Beispiel zeigt, wie Sie die fünf Jobs ermitteln, die in einer Organisation die meisten Byte für den aktuellen Tag gescannt haben. Sie können weiter nach statement_type
filtern, um zusätzliche Informationen wie Ladevorgänge, Exporte und Abfragen einzusehen.
SELECT job_id, user_email, total_bytes_billed FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION WHERE EXTRACT(DATE FROM creation_time) = current_date() ORDER BY total_bytes_billed DESC LIMIT 5;
Das Ergebnis sieht etwa so aus:
+--------------+--------------+---------------------------+ | job_id | user_email | total_bytes_billed | +--------------+--------------+---------------------------+ | bquxjob_1 | abc@xyz.com | 999999 | | bquxjob_2 | def@xyz.com | 888888 | | bquxjob_3 | ghi@xyz.com | 777777 | | bquxjob_4 | jkl@xyz.com | 666666 | | bquxjob_5 | mno@xyz.com | 555555 | +--------------+--------------+---------------------------+
Leistungsstatistiken für Abfragen aufrufen
Im folgenden Beispiel werden alle Abfragejobs zurückgegeben, die in den letzten 30 Tagen Leistungsinformationen von Ihrer Organisation erhalten haben, sowie eine URL, die auf das Diagramm zur Abfrageausführung in der Google Cloud Console verweist.
SELECT `bigquery-public-data`.persistent_udfs.job_url( project_id || ':us.' || job_id) AS job_url, query_info.performance_insights FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION WHERE DATE(creation_time) >= CURRENT_DATE - 30 -- scan 30 days of query history AND job_type = 'QUERY' AND state = 'DONE' AND error_result IS NULL AND statement_type != 'SCRIPT' AND EXISTS ( -- Only include queries which had performance insights SELECT 1 FROM UNNEST( query_info.performance_insights.stage_performance_standalone_insights ) WHERE slot_contention OR insufficient_shuffle_quota UNION ALL SELECT 1 FROM UNNEST( query_info.performance_insights.stage_performance_change_insights ) WHERE input_data_change.records_read_diff_percentage IS NOT NULL );