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
Sostituisci quanto segue:
  • (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  | +--------------------------------+-----------------------+--------------------+-----------------+ |  [email protected]  |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