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 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 Value
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_id STRING Die ID des Jobs. 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:
  • RESERVATION_ADMIN_PROJECT: Name des Google Cloud-Projekts, das die Reservierung verwaltet
  • RESERVATION_LOCATION: der Standort der Reservierung
  • RESERVATION_NAME: der Name der Reservierung
session_info RECORD Details zur Sitzung, in der dieser Job ausgeführt wurde, sofern vorhanden. (Vorschau)
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
Dabei gilt:

  • 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

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
. Dabei gilt:

  • 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
  );