Visualizzazione JOBS_BY_FOLDER
La visualizzazione INFORMATION_SCHEMA.JOBS_BY_FOLDER
contiene metadati quasi in tempo reale
su tutti i job inviati nella cartella padre del progetto corrente, inclusi
dei job nelle sottocartelle al suo interno.
Ruolo richiesto
Per ottenere l'autorizzazione di cui hai bisogno per eseguire query sulla vista INFORMATION_SCHEMA.JOBS_BY_FOLDER
,
chiedi all'amministratore di concederti
Ruolo IAM Visualizzatore risorse BigQuery (roles/bigquery.resourceViewer
) nella cartella principale.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene
bigquery.jobs.listAll
autorizzazione,
che è obbligatorio
esegui una query sulla vista INFORMATION_SCHEMA.JOBS_BY_FOLDER
.
Potresti anche riuscire a ottenere questa autorizzazione con ruoli personalizzati e altri ruoli predefiniti.
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
in cluster da project_id
e user_email
. La colonna query_info
contiene informazioni aggiuntive sui job di query.
La vista INFORMATION_SCHEMA.JOBS_BY_FOLDER
ha il seguente schema:
Nome colonna | Tipo di dati | Valore |
---|---|---|
bi_engine_statistics |
RECORD |
Se il progetto è configurato per utilizzare la BI
Engine SQL Interface, questo campo contiene BiEngineStatistics.
In caso contrario, NULL .
|
cache_hit |
BOOLEAN |
Se i risultati della query per questo job provengono da una cache.
Se disponi di un'istruzione con più query
job, cache_hit per la query principale è
NULL .
|
creation_time |
TIMESTAMP |
(Colonna Partizionamento) Data/ora di creazione del job. Il partizionamento si basa sull'ora UTC di questo timestamp. |
destination_table |
RECORD |
Tabella di destinazione per visualizzare eventuali risultati. |
end_time |
TIMESTAMP |
L'ora di fine di questo job, in millisecondi dall'epoca. Questo campo rappresenta
momento in cui il job entra nello stato DONE . |
error_result |
RECORD |
Dettagli di eventuali errori come oggetti ErrorProto. |
folder_numbers |
REPEATED INTEGER |
Numero di ID delle cartelle che contengono il progetto, a partire dalla cartella immediatamente
contiene il progetto, seguito dalla cartella che contiene la cartella secondaria e così via.
Ad esempio, se folder_numbers è [1, 2, 3] , allora la cartella
1 contiene subito il progetto, la cartella 2 contiene
1 e la cartella 3 contiene 2 . Questa colonna è solo
compilata in JOBS_BY_FOLDER .
|
job_creation_reason.code |
STRING |
Specifica il motivo generale per cui è stato creato un job. I valori possibili sono:
|
job_id |
STRING |
L'ID del job, se ne è stato creato uno. Altrimenti, l'ID di una query che utilizza
modalità di query. Ad esempio, bquxjob_1234 . |
job_stages |
RECORD |
Query
fasi del job.
Nota: i valori di questa colonna sono vuoti per le query che leggono dalle tabelle con di accesso a livello di riga. Per ulteriori informazioni, 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 interno, ad esempio la valutazione di un'istruzione di job dello script
o un aggiornamento della vista materializzata.
|
labels |
RECORD |
Matrice di etichette applicate al job come coppie chiave-valore. |
parent_job_id |
STRING |
ID del job padre, 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. |
query |
STRING |
Testo della query SQL. Solo la vista JOBS_BY_PROJECT contiene la query
colonna. |
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 |
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 il job, se presente. |
start_time |
TIMESTAMP |
L'ora di inizio di questo job, in millisecondi dall'epoca. Questo campo rappresenta
di tempo 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 . Vedi QueryStatementType.
per l'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 on demand
prezzo, questo campo conterrà i byte totali fatturati per
un lavoro. Se il progetto è configurato per utilizzare i prezzi fissi, 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 di accesso a livello di riga. Per saperne di più, consulta le best practice per i livelli di riga e la sicurezza 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 i livelli di riga e la sicurezza 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 per l'intera durata nello stato RUNNING ,
inclusi i nuovi tentativi. |
transaction_id |
STRING |
ID della transazione in cui è stato eseguito questo job, se presente. (Anteprima) |
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 delle query è superiore alla soglia interna del sistema. Per un job di query riuscito, il campo resource_warning può essere compilato. Con resource_warning , ottieni punti dati aggiuntivi per ottimizzare le query e impostare 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 valore esadecimale
Hash STRING che ignora commenti, valori dei parametri, 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 per il lavoro. |
transferred_bytes |
INTEGER |
Byte totali trasferiti per le query tra cloud, ad esempio i job di trasferimento tra cloud di BigQuery Omni. |
materialized_view_statistics |
RECORD |
Statistiche di 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 relative a questa vista devono includere un qualificatore 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_FOLDER |
Cartella che contiene il progetto specificato | REGION |
- (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
La seguente query mostra l'ID, la data e l'ora di creazione e lo stato (PENDING
,
RUNNING
o DONE
) di tutti i job interattivi nella
cartella del progetto designato:
SELECT job_id, creation_time, state FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_FOLDER WHERE priority = 'INTERACTIVE';
Il risultato è simile al seguente:
+--------------+---------------------------+---------------------------------+ | job_id | creation_time | state | +--------------+---------------------------+---------------------------------+ | bquxjob_1 | 2019-10-10 00:00:00 UTC | DONE | | bquxjob_2 | 2019-10-10 00:00:01 UTC | DONE | | bquxjob_3 | 2019-10-10 00:00:02 UTC | DONE | | bquxjob_4 | 2019-10-10 00:00:03 UTC | RUNNING | | bquxjob_5 | 2019-10-10 00:00:04 UTC | PENDING | +--------------+---------------------------+---------------------------------+
Ottieni byte elaborati dai job di esportazione
L'esempio seguente calcola il valore total_processed_bytes
per
EXTRACT
tipi di prestazioni. Per informazioni sulle quote per i job di esportazione, consulta
Criteri per le quote per i job di esportazione.
I byte totali elaborati possono essere utilizzati per monitorare l'utilizzo aggregato e assicurarsi che i job di esportazione rimangano al di sotto del limite di 50 TB al giorno:
SELECT
DATE(creation_time) as day,
project_id as source_project_id,
SUM(total_bytes_processed) AS total_bytes_processed
FROM
region-us.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 8 DAY) AND CURRENT_TIMESTAMP()
AND job_type = "EXTRACT"
GROUP BY
day,
source_project_id
ORDER BY
day DESC
Ottenere l'utilizzo dei job di copia
Per informazioni sui job di copia, consulta Copiare una tabella. L'esempio seguente mostra l'utilizzo dei job di copia:
SELECT
DATE(creation_time) as day,
project_id as source_project_id,
CONCAT(destination_table.project_id,":",destination_table.dataset_id,".",destination_table.table_id) as destination_table,
COUNT(job_id) AS copy_job_count
FROM
region-us.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 8 DAY) AND CURRENT_TIMESTAMP()
AND job_type = "COPY"
GROUP BY
day,
source_project_id,
destination_table
ORDER BY
day DESC
Visualizzare informazioni sulle prestazioni per le query
L'esempio seguente restituisce tutti i job di query con insight sulle prestazioni da la cartella del progetto designato 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_FOLDER 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 );