Visualizzazione ASSIGNMENT_CHANGES
La visualizzazione INFORMATION_SCHEMA.ASSIGNMENT_CHANGES contiene un elenco quasi in tempo reale
di tutte le modifiche apportate alle assegnazioni all'interno del progetto di amministrazione. Ogni riga
rappresenta una singola modifica a una singola assegnazione. Per saperne di più sulle prenotazioni, consulta Introduzione alle prenotazioni.
Autorizzazione obbligatoria
Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.ASSIGNMENT_CHANGES, devi disporre dell'autorizzazione Identity and Access Management (IAM) bigquery.reservationAssignments.list per il progetto.
Ciascuno dei seguenti ruoli IAM predefiniti include l'autorizzazione richiesta:
- roles/bigquery.resourceAdmin
- roles/bigquery.resourceEditor
- roles/bigquery.resourceViewer
- roles/bigquery.user
- roles/bigquery.admin
Per saperne di più sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.
Schema
La vista INFORMATION_SCHEMA.ASSIGNMENT_CHANGES ha lo schema seguente:
| Nome colonna | Tipo di dati | Valore | 
|---|---|---|
| change_timestamp | TIMESTAMP | Ora in cui è stata apportata la modifica. | 
| project_id | STRING | ID del progetto di amministrazione. | 
| project_number | INTEGER | Numero del progetto di amministrazione. | 
| assignment_id | STRING | ID che identifica in modo univoco l'assegnazione. | 
| reservation_name | STRING | Nome della prenotazione utilizzata dall'assegnazione. | 
| job_type | STRING | Il tipo di job che può utilizzare la prenotazione. Può essere PIPELINEoQUERY. | 
| assignee_id | STRING | ID che identifica in modo univoco la risorsa assegnataria. | 
| assignee_number | INTEGER | Numero che identifica in modo univoco la risorsa assegnataria. | 
| assignee_type | STRING | Tipo di risorsa assegnatario. Può essere organization,folderoproject. | 
| action | STRING | Tipo di evento che si è verificato con l'assegnazione. Può essere CREATE,UPDATEoDELETE. | 
| user_email | STRING | Indirizzo email dell'utente o soggetto della federazione delle identità della forza lavoro che ha apportato la modifica. googleper le modifiche
        apportate da Google.NULLse l'indirizzo email è sconosciuto. | 
| state | STRING | Stato dell'assegnazione. Può essere PENDINGoACTIVE. | 
Conservazione dei dati
Questa visualizzazione contiene gli incarichi attuali e quelli eliminati che vengono conservati per un massimo di 41 giorni, dopodiché vengono rimossi dalla visualizzazione.
Ambito e sintassi
Le query su questa visualizzazione devono includere un qualificatore di regione. Se non specifichi un qualificatore regionale, i metadati vengono recuperati da tutte le regioni. La tabella seguente spiega l'ambito della regione per questa visualizzazione:
| Nome vista | Ambito risorsa | Ambito regione | 
|---|---|---|
| [PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES[_BY_PROJECT] | Livello progetto | 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
Trovare le ultime modifiche apportate a un compito
L'esempio seguente mostra l'utente che ha apportato l'ultimo aggiornamento a un determinato compito entro una data specificata.
SELECT user_email, change_timestamp, reservation_name, assignment_id FROM `region-us`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES WHERE change_timestamp BETWEEN '2021-09-30' AND '2021-10-01' AND assignment_id = 'assignment_01' ORDER BY change_timestamp DESC LIMIT 1;
Il risultato è simile al seguente:
+--------------------------------+-----------------------+--------------------+-----------------+ | user_email | change_timestamp | reservation_name | assignment_id | +--------------------------------+-----------------------+--------------------+-----------------+ | cloudysanfrancisco@gmail.com |2021-09-30 09:30:00 UTC| my_reservation | assignment_01 | +--------------------------------+-----------------------+--------------------+-----------------+
Identificare lo stato di assegnazione di una prenotazione in un momento specifico
L'esempio seguente mostra tutte le assegnazioni attive di una prenotazione in un determinato momento.
SELECT reservation_name, assignee_id, assignee_type, job_type FROM `region-REGION`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES WHERE reservation_name = RESERVATION_NAME AND change_timestamp < TIMESTAMP QUALIFY ROW_NUMBER() OVER(PARTITION BY assignee_id, job_type ORDER BY change_timestamp DESC) = 1 AND action != 'DELETE';
Sostituisci quanto segue:
- REGION: la regione in cui si trova la prenotazione
- RESERVATION_NAME: il nome della prenotazione utilizzata dall'assegnazione
- TIMESTAMP: il timestamp che rappresenta il momento specifico in cui viene controllato l'elenco delle assegnazioni
Il risultato è simile al seguente:
+-------------------------+---------------------------+---------------+----------+ | reservation_name | assignee_id | assignee_type | job_type | +-------------------------+---------------------------+---------------+----------+ | test-reservation | project_1 | PROJECT | QUERY | | test-reservation | project_2 | PROJECT | QUERY | +-------------------------+---------------------------+---------------+----------+
Identificare lo stato di assegnazione di una prenotazione quando è stato eseguito un determinato job
Per visualizzare le assegnazioni attive durante l'esecuzione di un determinato job, utilizza il seguente esempio.
SELECT reservation_name, assignee_id, assignee_type, job_type FROM `region-REGION`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES WHERE reservation_name = RESERVATION_NAME AND change_timestamp < (SELECT creation_time FROM PROJECT_ID.`region-REGION`.INFORMATION_SCHEMA.JOBS WHERE job_id = JOB_ID) QUALIFY ROW_NUMBER() OVER(PARTITION BY assignee_id, job_type ORDER BY change_timestamp DESC) = 1 AND action != 'DELETE';
Sostituisci quanto segue:
- REGION: la regione in cui si trova la prenotazione
- RESERVATION_NAME: il nome della prenotazione utilizzata dall'assegnazione
- PROJECT_ID: l'ID del tuo progetto Google Cloud in cui è stato eseguito il job
- JOB_ID: l'ID job rispetto al quale è stato controllato lo stato dell'assegnazione