Visualizzazione JOBS_BY_Organization

La visualizzazione INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION contiene metadati quasi in tempo reale su tutti i job inviati nell'organizzazione associati al progetto attuale.

Ruolo richiesto

Per ottenere l'autorizzazione necessaria per eseguire query sulla vista INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore risorse BigQuery (roles/bigquery.resourceViewer) per la tua organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene l'autorizzazione bigquery.jobs.listAll, necessaria per eseguire query sulla vista INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION.

Potresti anche essere in grado di ottenere questa autorizzazione con i ruoli personalizzati o altri ruoli predefiniti.

La tabella dello schema è disponibile solo per gli utenti con organizzazioni Google Cloud definite.

Per maggiori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.

Schema

I dati sottostanti sono partizionati in base alla colonna creation_time e raggruppati in base a project_id e user_email. La colonna query_info contiene informazioni aggiuntive sui job di query.

La vista INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION ha il seguente schema:

Nome colonna Tipo di dati Valore
bi_engine_statistics RECORD Se il progetto è configurato per utilizzare l'interfaccia SQL di BI Engine, questo campo contiene BiEngineStatistics. In caso contrario, NULL.
cache_hit BOOLEAN Indica se i risultati della query di questo job provengono da una cache. Se hai un job di istruzione multi-query, cache_hit per la query padre è NULL.
creation_time TIMESTAMP (Colonna di partizionamento) Data/ora di creazione del job. Il partizionamento si basa sull'ora UTC di questo timestamp.
destination_table RECORD Tabella di destinazione per i risultati, se presenti.
end_time TIMESTAMP L'ora di fine di questo job, in millisecondi dall'epoca. Questo campo rappresenta l'ora in cui il job entra nello stato DONE.
error_result RECORD Dettagli di eventuali errori come oggetti ErrorProto.
job_id STRING L'ID del job. Ad esempio, bquxjob_1234.
job_stages RECORD Esegui query sulle fasi del job.

Nota: i valori di questa colonna sono vuoti per le query che leggono dalle tabelle con criteri di accesso a livello di riga. Per maggiori informazioni, consulta le best practice per la sicurezza a livello di riga in BigQuery.

job_type STRING Il tipo di job. Può essere QUERY, LOAD, EXTRACT, COPY o NULL. Un valore NULL indica un job interno, ad esempio la valutazione di un'istruzione di job di script o un aggiornamento di una vista materializzata.
labels RECORD Array di etichette applicate al job come coppie chiave-valore.
parent_job_id STRING ID dell'eventuale job padre.
priority STRING La priorità di questo job. I valori validi sono INTERACTIVE e BATCH.
project_id STRING (Colonna di clustering) L'ID del progetto.
project_number INTEGER Il numero del progetto.
query STRING Testo della query SQL. Solo la vista JOBS_BY_PROJECT contiene la colonna della query.
referenced_tables RECORD Array di tabelle a cui fa riferimento il job. Compilato solo per i job di query che non sono hit della cache.
reservation_id STRING Nome della prenotazione principale assegnata a questo job nel formato RESERVATION_ADMIN_PROJECT:RESERVATION_LOCATION.RESERVATION_NAME.
In questo output:
  • RESERVATION_ADMIN_PROJECT: il nome del progetto Google Cloud che amministra la prenotazione
  • RESERVATION_LOCATION: il luogo della prenotazione
  • RESERVATION_NAME: il nome della prenotazione
session_info RECORD Dettagli sulla sessione in cui è stato eseguito il job, se presente. (Anteprima)
start_time TIMESTAMP L'ora di inizio di questo job, in millisecondi dall'epoca. Questo campo rappresenta l'ora in cui il job passa dallo stato PENDING a RUNNING o DONE.
state STRING Stato del job in esecuzione. Gli stati validi includono PENDING, RUNNING e DONE.
statement_type STRING Il tipo di istruzione di query. Ad esempio, DELETE, INSERT, SCRIPT, SELECT o UPDATE. Consulta QueryStatementType per l'elenco dei valori validi.
timeline RECORD Sequenza temporale della query del job. Contiene snapshot dell'esecuzione della query.
total_bytes_billed INTEGER Se il progetto è configurato per utilizzare i prezzi on demand, questo campo contiene i byte totali fatturati per il job. Se il progetto è configurato per utilizzare un sistema con tariffe a costo fisso, non ti vengono addebitati i byte e questo campo è solo informativo.

Nota: i valori di questa colonna sono vuoti per le query che leggono dalle tabelle con criteri di accesso a livello di riga. Per maggiori informazioni, consulta le best practice per la sicurezza a livello di riga in BigQuery.

total_bytes_processed INTEGER

Byte totali elaborati dal job.

Nota: i valori di questa colonna sono vuoti per le query che leggono dalle tabelle con criteri di accesso a livello di riga. Per maggiori informazioni, consulta le best practice per la sicurezza a livello di riga in BigQuery.

total_modified_partitions INTEGER Il numero totale di partizioni modificate dal job. Questo campo viene compilato per i job LOAD e QUERY.
total_slot_ms INTEGER Millisecondi di slot per il job nell'intera durata in stato RUNNING, inclusi i nuovi tentativi.
transaction_id STRING ID della transazione in cui è stato eseguito il job, se presente. (Anteprima)
user_email STRING (Colonna Clustering) Indirizzo email o account di servizio dell'utente che ha eseguito il job.
query_info.resource_warning STRING Il messaggio di avviso che viene visualizzato se l'utilizzo delle risorse durante l'elaborazione delle query supera la soglia interna del sistema.
Un job di query riuscito può avere il campo resource_warning completato. Con resource_warning ottieni punti dati aggiuntivi per ottimizzare le query e configurare il monitoraggio delle tendenze del rendimento di un insieme equivalente di query utilizzando query_hashes.
query_info.query_hashes.normalized_literals STRING Contiene gli hash della query. normalized_literals è un hash esadecimale STRING che ignora commenti, valori parametro, funzioni definite dall'utente e valori letterali.
Questo campo viene visualizzato per le query GoogleSQL riuscite che non sono hit della cache.
query_info.performance_insights RECORD Informazioni sulle prestazioni per il job.
query_info.optimization_details STRUCT Le ottimizzazioni basate sulla cronologia del job.
transferred_bytes INTEGER Byte totali trasferiti per le query cross-cloud, ad esempio i job di trasferimento tra cloud BigQuery Omni.
materialized_view_statistics RECORD Statistiche delle viste materializzate considerate in un job di query. (Anteprima)

Conservazione dei dati

Questa visualizzazione contiene i job attualmente in esecuzione e la cronologia dei job degli ultimi 180 giorni.

Ambito e sintassi

Le query in questa vista devono includere un qualificatore regione. La tabella seguente spiega l'ambito della regione per questa visualizzazione:

Nome vista Ambito risorsa Ambito regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION Organizzazione contenente il progetto specificato REGION
Sostituisci quanto segue:

  • (Facoltativo) PROJECT_ID: l'ID del tuo progetto Google Cloud. Se non specificato, viene utilizzato il progetto predefinito.
  • REGION: qualsiasi nome della regione del set di dati. Ad esempio: region-us.

Esempio

Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto nel seguente formato:

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto
  • REGION_NAME: la regione del progetto

Ad esempio, `myproject`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION.

I primi 5 job che hanno analizzato il maggior numero di byte oggi

L'esempio seguente mostra come trovare i cinque job che hanno analizzato il maggior numero di byte in un'organizzazione per il giorno attuale. Puoi filtrare ulteriormente in base a statement_type per eseguire query per informazioni aggiuntive come caricamenti, esportazioni e query.

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;

Il risultato è simile al seguente:

+--------------+--------------+---------------------------+
| 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                 |
+--------------+--------------+---------------------------+

Visualizzare le informazioni sulle prestazioni per le query

L'esempio seguente restituisce tutti i job di query con insight sulle prestazioni della tua organizzazione negli ultimi 30 giorni, insieme a un URL che rimanda al grafico di esecuzione delle query nella console Google Cloud.

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