Vista JOBS_BY_ORGANIZATION

La vista INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION contiene metadati quasi in tempo reale su tutti i job inviati nell'organizzazione associata al progetto corrente.

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 BigQuery Resource Viewer (roles/bigquery.resourceViewer) sulla tua organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione bigquery.jobs.listAll necessaria per interrogare la visualizzazione INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

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

Per saperne di più sulle autorizzazioni di BigQuery, consulta Controllo dell'accesso con IAM.

Schema

I dati sottostanti sono partizionati in base alla colonna creation_time e raggruppati in cluster 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 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 principale è NULL.
creation_time TIMESTAMP (Colonna di partizionamento) Ora di creazione di questo job. Il partizionamento si basa sull'ora UTC di questo timestamp.
destination_table RECORD Tabella di destinazione per i risultati, se presente.
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_creation_reason.code STRING Specifica il motivo generale per cui è stato creato un job.
I valori possibili sono:
  • REQUESTED: è stata richiesta la creazione del job.
  • LONG_RUNNING: la richiesta di query è stata eseguita oltre un timeout definito dal sistema specificato dal campo timeoutMs nel QueryRequest. Di conseguenza, è stata considerata un'operazione a lunga esecuzione per la quale è stato creato un job.
  • LARGE_RESULTS: i risultati della query non possono essere inseriti nella risposta in linea.
  • OTHER: il sistema ha stabilito che la query deve essere eseguita come job.
job_id STRING L'ID del job, se ne è stato creato uno. In caso contrario, l'ID di una query che utilizza la modalità di creazione job facoltativa. Ad esempio, bquxjob_1234.
job_stages RECORD REPEATED Fasi della query del job.

Nota: i valori di questa colonna sono vuoti per le query che leggono da tabelle con policy di accesso a livello di riga. Per saperne di più, 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 in background.
labels RECORD Array di etichette applicate al job come coppie chiave-valore.
object_storage_stats RECORD REPEATED Statistiche sull'utilizzo dell'archiviazione di oggetti e della memorizzazione nella cache per un job di query. Il valore è un record ripetuto con i seguenti campi:
  • cloud_provider: il cloud provider in cui è ospitato l'archivio di oggetti (ad esempio AWS).
  • object_storage_bytes_read: numero totale di byte letti direttamente dallo spazio di archiviazione degli oggetti.
  • cache_bytes_read: numero totale di byte letti dalla cache.
parent_job_id STRING ID del job principale, se presente.
priority STRING La priorità di questo job. I valori validi includono INTERACTIVE e BATCH.
project_id STRING (Colonna di clustering) L'ID del progetto.
project_number INTEGER Il numero del progetto.
referenced_tables RECORD Array di valori STRUCT che contengono i seguenti campi STRING per ogni tabella a cui fa riferimento la query: project_id, dataset_id e table_id. Compilato solo per i job di query che non sono successi della cache.
referenced_logical_views RECORD Array di valori STRUCT che contengono i seguenti campi STRING per ogni vista logica a cui fa riferimento la query: project_id, dataset_id e table_id. Compilato solo per i job di query che non sono successi 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: la posizione della prenotazione
  • RESERVATION_NAME: il nome della prenotazione
reservation_group_path ARRAY<STRING> Il gruppo di prenotazioni a cui è collegata la prenotazione. Ad esempio, se la prenotazione è collegata al gruppo my-group, il campo reservation_group_path contiene un elenco come: [my-group].
edition STRING La versione associata alla prenotazione assegnata a questo job. Per saperne di più sulle versioni, consulta Introduzione alle versioni di BigQuery.
session_info RECORD Dettagli sulla sessione in cui è stato eseguito questo job, se presente.
start_time TIMESTAMP L'ora di inizio di questo job, in millisecondi dall'epoca. Questo campo rappresenta il momento in cui il job passa dallo stato PENDING a RUNNING o DONE.
state STRING Stato di esecuzione del job. 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 un elenco di valori validi.
timeline RECORD Cronologia della query del job. Contiene snapshot dell'esecuzione delle query.
total_bytes_billed INTEGER Se il progetto è configurato per l'utilizzo dei prezzi on demand, questo campo contiene i byte totali fatturati per il job. Se il progetto è configurato per l'utilizzo dei prezzi 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 da tabelle con policy di accesso a livello di riga. Per saperne di più, 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 da tabelle con policy di accesso a livello di riga. Per saperne di più, 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 slot per il job per l'intera durata nello stato RUNNING, inclusi i nuovi tentativi.
total_services_sku_slot_ms INTEGER Millisecondi di slot totali per il job eseguito su servizi esterni e fatturato sullo SKU dei servizi. Questo campo viene compilato solo per i job che hanno costi di servizi esterni e rappresenta l'utilizzo totale per i costi il cui metodo di fatturazione è "SERVICES_SKU".
transaction_id STRING ID della transazione in cui è stato eseguito questo job, se presente.
user_email STRING (Colonna di clustering) Indirizzo email o account di servizio dell'utente che ha eseguito il job.
principal_subject STRING Una rappresentazione in formato stringa dell'identità dell'entità 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 della query supera la soglia interna del sistema.
Un job di query riuscito può avere il campo resource_warning compilato. Con resource_warning, ottieni punti dati aggiuntivi per ottimizzare le query e configurare il monitoraggio delle tendenze di rendimento di un insieme equivalente di query utilizzando query_hashes.
query_info.query_hashes.normalized_literals STRING Contiene il valore hash della query. normalized_literals è un hash STRING esadecimale che ignora i commenti, i valori parametro, le funzioni definite dall'utente e i valori letterali. Il valore hash sarà diverso quando le visualizzazioni sottostanti cambiano o se la query fa riferimento implicitamente a colonne, ad esempio SELECT *, e lo schema della tabella cambia.
Questo campo viene visualizzato per le query GoogleSQL riuscite che non sono successi della cache.
query_info.performance_insights RECORD Insight sulle prestazioni per il job.
transferred_bytes INTEGER Byte totali trasferiti per le query BigQuery Omni, ad esempio i job di trasferimento BigQuery Omni.
materialized_view_statistics RECORD Statistiche delle viste materializzate prese in considerazione in un job di query. (Anteprima)
metadata_cache_statistics RECORD Statistiche sull'utilizzo dell'indice delle colonne di metadati per le tabelle a cui viene fatto riferimento in un job di query.
search_statistics RECORD Statistiche per una query di ricerca.
query_dialect STRING Questo campo sarà disponibile a maggio 2025. Il dialetto della query utilizzato per il job. I valori validi includono:
  • GOOGLE_SQL: è stato richiesto l'utilizzo di GoogleSQL per il job.
  • LEGACY_SQL: È stato richiesto al job di utilizzare LegacySQL.
  • DEFAULT_LEGACY_SQL: nella richiesta del job non è stato specificato alcun dialetto di query. BigQuery ha utilizzato il valore predefinito di LegacySQL.
  • DEFAULT_GOOGLE_SQL: nella richiesta del job non è stato specificato alcun dialetto di query. BigQuery ha utilizzato il valore predefinito di GoogleSQL.

Per i job inviati dagli utenti, questo campo viene compilato solo per i job di query. La selezione predefinita del dialetto della query può essere controllata dalle impostazioni di configurazione.

Per i job in background, il valore di questo campo non è controllato dalle impostazioni di configurazione del dialetto di query predefinito e non influisce sui job inviati dagli utenti. Per alcuni job in background, il valore viene omesso.

continuous BOOLEAN Se il job è una query continua.
continuous_query_info.output_watermark TIMESTAMP Rappresenta il punto fino al quale la query continua ha elaborato correttamente i dati.
vector_search_statistics RECORD Statistiche per una query di ricerca vettoriale.
external_service_costs RECORD Un array di informazioni sui costi dei servizi esterni per un job di query.
ml_statistics.model_type STRING Se il job è una query di creazione del modello BigQuery ML, questo campo specifica il tipo di modello che viene creato. Per tutti gli altri job, il valore è NULL.

Per garantire la stabilità, ti consigliamo di elencare esplicitamente le colonne nelle query dello schema di informazioni anziché utilizzare un carattere jolly (SELECT *). L'elenco esplicito delle colonne impedisce l'interruzione delle query se lo schema sottostante cambia.

Conservazione dei dati

Questa visualizzazione mostra i job in esecuzione insieme alla cronologia dei job degli ultimi 180 giorni. Se un progetto viene migrato a un'organizzazione (da nessuna organizzazione o da un'altra), le informazioni sui job precedenti alla data di migrazione non sono accessibili tramite la visualizzazione INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION, poiché la visualizzazione conserva i dati solo a partire dalla data di migrazione.

Ambito e sintassi

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

Nome vista Ambito risorsa Ambito della regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION Organizzazione che contiene 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`.

Limitazioni

La vista INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION include i job eseguiti dai progetti che appartengono all'organizzazione attuale. I job eseguiti da progetti di altre organizzazioni non sono disponibili in questa visualizzazione, anche se accedono a risorse nell'organizzazione attuale, ad esempio set di dati condivisi. Ad esempio, se condividi un set di dati con un progetto di un'altra organizzazione, i job eseguiti dal progetto per accedere ai dati nel set di dati non sono inclusi in questa visualizzazione.

Esempi

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 progetto
  • REGION_NAME: la regione del progetto

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

Trova i primi cinque 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 corrente. Puoi filtrare ulteriormente in base a statement_type per eseguire query su informazioni aggiuntive come caricamenti, esportazioni e query.

SELECT
  job_id,
  user_email,
  total_bytes_billed
FROM
  `region-REGION_NAME`.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                 |
+--------------+--------------+---------------------------+

Utilizzo aggregato di Fogli connessi per utente a livello di organizzazione

La seguente query fornisce un riepilogo dei principali utenti di Fogli connessi nella tua organizzazione negli ultimi 30 giorni, classificati in base ai dati fatturati totali. La query aggrega il numero totale di query, i byte totali fatturati e i millisecondi di slot totali per ogni utente. Queste informazioni sono utili per comprendere l'adozione e per identificare i principali consumatori di risorse.

SELECT
  user_email,
  COUNT(*) AS total_queries,
  SUM(total_bytes_billed) AS total_bytes_billed,
  SUM(total_slot_ms) AS total_slot_ms
FROM
  `region-REGION_NAME.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION`
WHERE
  -- Filter for jobs created in the last 30 days
  creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
  -- Filter for jobs originating from Connected Sheets
  AND job_id LIKE 'sheets_dataconnector%'
  -- Filter for completed jobs
  AND state = 'DONE'
  AND (statement_type IS NULL OR statement_type <> 'SCRIPT')
GROUP BY
  1
ORDER BY
  total_bytes_billed DESC;

Sostituisci REGION_NAME con la regione del tuo progetto. Ad esempio, region-us.

Il risultato è simile al seguente:

+---------------------+---------------+--------------------+-----------------+
| user_email          | total_queries | total_bytes_billed | total_slot_ms   |
+---------------------+---------------+--------------------+-----------------+
| alice@example.com   | 152           | 12000000000        | 3500000         |
| bob@example.com     | 45            | 8500000000         | 2100000         |
| charles@example.com | 210           | 1100000000         | 1800000         |
+---------------------+---------------+--------------------+-----------------+

Trovare i log dei job delle query di Fogli connessi a livello di organizzazione

La seguente query fornisce un log dettagliato di ogni singolo job eseguito da Fogli connessi. Queste informazioni sono utili per l'audit e l'identificazione di query specifiche a costi elevati.

SELECT
  job_id,
  creation_time,
  user_email,
  project_id,
  total_bytes_billed,
  total_slot_ms
FROM
  `region-REGION_NAME.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION`
WHERE
  creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
  AND job_id LIKE 'sheets_dataconnector%'
  AND state = 'DONE'
  AND (statement_type IS NULL OR statement_type <> 'SCRIPT')
ORDER BY
  creation_time DESC;

Sostituisci REGION_NAME con la regione del tuo progetto. Ad esempio, region-us.

Il risultato è simile al seguente:

+---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+
| job_id                          | creation_time                   | user_email      | project_id | total_bytes_billed | total_slot_ms |
+---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+
| sheets_dataconnector_bquxjob_1  | 2025-11-06 00:26:53.077000 UTC  | abc@example.com | my_project | 12000000000        | 3500000       |
| sheets_dataconnector_bquxjob_2  | 2025-11-06 00:24:04.294000 UTC  | xyz@example.com | my_project | 8500000000         | 2100000       |
| sheets_dataconnector_bquxjob_3  | 2025-11-03 23:17:25.975000 UTC  | bob@example.com | my_project | 1100000000         | 1800000       |
+---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+