Visualizzazione JOBS_BY_ORGANIZATION
La visualizzazione INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION contiene metadati quasi in tempo reale su tutti i job inviati nell'organizzazione associata al progetto attuale.
Ruolo richiesto
Per ottenere l'autorizzazione necessaria per eseguire query sulla visualizzazione INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore risorse BigQuery (roles/bigquery.resourceViewer) nella 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 Clouddefinite.
Per ulteriori 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 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 lo schema seguente:
| Nome colonna | Tipo di dati | Valore |
|---|---|---|
bi_engine_statistics |
RECORD |
Se il progetto è configurato per utilizzare BI
Engine, questo campo contiene BiEngineStatistics.
Altrimenti 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 presenti. |
end_time |
TIMESTAMP |
L'ora di fine di questo job, in millisecondi dall'epoca. Questo campo rappresenta
il momento in cui il job entra nello stato DONE. |
error_result |
RECORD |
Dettagli di eventuali errori come oggetti ErrorProto. |
folder_numbers |
REPEATED INTEGER |
ID numerici delle cartelle che contengono il progetto, a partire dalla cartella che contiene immediatamente
il progetto, seguita dalla cartella che contiene la cartella secondaria e così via.
Ad esempio, se folder_numbers è [1, 2, 3], la cartella
1 contiene immediatamente il progetto, la cartella 2 contiene
1 e la cartella 3 contiene 2. Questa colonna viene compilata
solo in JOBS_BY_FOLDER.
|
job_creation_reason.code |
STRING |
Specifica il motivo di alto livello per cui è stato creato un job. I valori possibili sono:
|
job_id |
STRING |
L'ID del job, se ne è stato creato uno. In caso contrario, l'ID query di una query che utilizza la modalità di creazione dei job facoltativa. Ad esempio, bquxjob_1234. |
job_stages |
RECORD |
Fasi della query del job.
Nota: i valori di questa colonna sono vuoti per le query che leggono da tabelle con criteri 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 lavoro. 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. |
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 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:
|
edition |
STRING |
L'edizione associata alla prenotazione assegnata a questo job. Per ulteriori informazioni sulle versioni, vedi 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 l'ora 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 dei valori validi.
|
timeline |
RECORD |
Cronologia delle 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 il totale dei byte fatturati per il
job. Se il progetto è configurato per utilizzare i prezzi
a tariffa fissa, 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 criteri 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 criteri 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 lavori LOAD e QUERY.
|
total_slot_ms |
INTEGER |
Millisecondi dello slot per il job per l'intera durata nello stato RUNNING,
inclusi i tentativi. |
total_services_sku_slot_ms |
INTEGER |
Il totale dei millisecondi dello slot per il job eseguito su servizi esterni e fatturato in base allo
SKU dei servizi. Questo campo viene compilato solo per i job che hanno costi di servizi esterni ed è
il totale dell'utilizzo 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. |
query_info.resource_warning |
STRING |
Il messaggio di avviso 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 commenti, valori dei parametri, UDF e valori letterali.
Il valore hash cambia quando le visualizzazioni sottostanti vengono modificate 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 hit della cache. |
query_info.performance_insights |
RECORD |
Informazioni sul rendimento del job. |
query_info.optimization_details |
STRUCT |
Le ottimizzazioni basate sulla cronologia
per il job. Solo la visualizzazione JOBS_BY_PROJECT ha questa colonna.
|
transferred_bytes |
INTEGER |
Byte totali trasferiti per le query cross-cloud, ad esempio i job di trasferimento cross-cloud 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 della colonna dei 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:
Questo campo viene compilato solo per i job di query. La selezione predefinita del dialetto della query può essere controllata dalle impostazioni di configurazione. |
continuous |
BOOLEAN |
Indica 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. |
Conservazione dei dati
Questa visualizzazione contiene i job in esecuzione e la cronologia dei job degli ultimi 180 giorni.
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 regione |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION |
Organizzazione che contiene il progetto specificato | REGION |
-
(Facoltativo)
PROJECT_ID: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito. -
REGION: qualsiasi nome della regione del set di dati. Ad esempio:`region-us`.
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
PROJECT_ID: l'ID progettoREGION_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
Il seguente esempio mostra come trovare i cinque job che hanno analizzato il maggior numero di byte in un'organizzazione per il giorno corrente. Puoi filtrare ulteriormente su
statement_type per cercare 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 | +--------------+--------------+---------------------------+
Aggrega l'utilizzo 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 al totale dei dati fatturati. 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 singola query eseguita da Fogli connessi. Queste informazioni sono utili per l'audit e per identificare query specifiche a costi elevati.
SELECT
job_id,
creation_time,
user_email,
project_id,
total_bytes_billed,
total_slot_ms,
query
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 | query | +---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+--------------------------------+ | sheets_dataconnector_bquxjob_1 | 2025-11-06 00:26:53.077000 UTC | abc@example.com | my_project | 12000000000 | 3500000 | SELECT ... FROM dataset.table1 | | sheets_dataconnector_bquxjob_2 | 2025-11-06 00:24:04.294000 UTC | xyz@example.com | my_project | 8500000000 | 2100000 | SELECT ... FROM dataset.table2 | | sheets_dataconnector_bquxjob_3 | 2025-11-03 23:17:25.975000 UTC | bob@example.com | my_project | 1100000000 | 1800000 | SELECT ... FROM dataset.table3 | +---------------------------------+---------------------------------+-----------------+------------+--------------------+---------------+--------------------------------+