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
PIPELINE o QUERY . |
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 ,
folder o project . |
action |
STRING |
Tipo di evento che si è verificato con l'assegnazione. Può essere
CREATE , UPDATE o DELETE . |
user_email |
STRING |
Indirizzo email dell'utente o soggetto della federazione delle identità della forza lavoro che ha apportato la modifica. google per le modifiche
apportate da Google. NULL se l'indirizzo email è sconosciuto.
|
state |
STRING |
Stato dell'assegnazione. Può essere PENDING o
ACTIVE . |
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 prenotazioneRESERVATION_NAME
: il nome della prenotazione utilizzata dall'assegnazioneTIMESTAMP
: 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 prenotazioneRESERVATION_NAME
: il nome della prenotazione utilizzata dall'assegnazionePROJECT_ID
: l'ID del tuo progetto Google Cloud in cui è stato eseguito il jobJOB_ID
: l'ID job rispetto al quale è stato controllato lo stato dell'assegnazione