Vista ASSIGNMENT_CHANGES
A vista INFORMATION_SCHEMA.ASSIGNMENT_CHANGES contém uma lista quase em tempo real de todas as alterações às atribuições no projeto de administração. Cada linha representa uma única alteração a uma única atribuição. Para mais informações sobre a reserva, consulte o artigo Introdução às reservas.
Autorização necessária
Para consultar a vista INFORMATION_SCHEMA.ASSIGNMENT_CHANGES, precisa da autorização de gestão de identidade e de acesso (IAM) para o projeto.bigquery.reservationAssignments.list
Cada uma das seguintes funções de IAM predefinidas inclui a autorização necessária:
roles/bigquery.resourceAdminroles/bigquery.resourceEditorroles/bigquery.resourceViewerroles/bigquery.userroles/bigquery.admin
Para mais informações sobre as autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.
Esquema
A vista INFORMATION_SCHEMA.ASSIGNMENT_CHANGES tem o seguinte esquema:
| Nome da coluna | Tipo de dados | Valor | 
|---|---|---|
change_timestamp | 
      TIMESTAMP | 
      Hora em que a alteração ocorreu. | 
project_id | 
      STRING | 
      ID do projeto de administração. | 
project_number | 
      INTEGER | 
      Número do projeto de administração. | 
assignment_id | 
      STRING | 
      ID que identifica de forma exclusiva a atribuição. | 
reservation_name | 
      STRING | 
      Nome da reserva que a atribuição usa. | 
job_type | 
      STRING | 
      O tipo de trabalho que pode usar a reserva. Pode ser
        PIPELINE ou QUERY. | 
    
assignee_id | 
      STRING | 
      ID que identifica de forma exclusiva o recurso atribuído. | 
assignee_number | 
      INTEGER | 
      Número que identifica de forma exclusiva o recurso de cessionário. | 
assignee_type | 
      STRING | 
      Tipo de recurso do destinatário. Pode ser organization,
        folder ou project. | 
    
action | 
      STRING | 
      Tipo de evento que ocorreu com a atribuição. Pode ser
        CREATE, UPDATE ou DELETE. | 
    
user_email | 
      STRING | 
      O endereço de email do utilizador ou o assunto da federação de identidades
        da força de trabalho que fez a alteração. google para alterações
        efetuadas pela Google. NULL se o endereço de email for desconhecido.
       | 
    
state | 
      STRING | 
      Estado da atribuição. Pode ser PENDING ou
        ACTIVE. | 
    
Retenção de dados
Esta vista contém atribuições atuais e atribuições eliminadas que são mantidas durante um máximo de 41 dias, após os quais são removidas da vista.
Âmbito e sintaxe
As consultas nesta vista têm de incluir um qualificador de região. Se não especificar um qualificador regional, os metadados são obtidos de todas as regiões. A tabela seguinte explica o âmbito da região para esta vista:
| Nome da visualização de propriedade | Âmbito do recurso | Âmbito da região | 
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES[_BY_PROJECT] | 
  Nível do projeto | REGION | 
  
- 
  Opcional: 
PROJECT_ID: o ID do seu projeto do Google Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido. - 
  
REGION: qualquer nome da região do conjunto de dados. Por exemplo,`region-us`. 
Exemplos
Encontre as alterações mais recentes a uma atribuição
O exemplo seguinte apresenta o utilizador que fez a atualização de atribuição mais recente a uma atribuição específica dentro de uma data especificada.
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;
O resultado é semelhante ao seguinte:
+--------------------------------+-----------------------+--------------------+-----------------+ | user_email | change_timestamp | reservation_name | assignment_id | +--------------------------------+-----------------------+--------------------+-----------------+ | cloudysanfrancisco@gmail.com |2021-09-30 09:30:00 UTC| my_reservation | assignment_01 | +--------------------------------+-----------------------+--------------------+-----------------+
Identifique o estado de atribuição de uma reserva num momento específico
O exemplo seguinte apresenta todas as atribuições ativas de uma reserva num determinado 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';
Substitua o seguinte:
REGION: a região onde se encontra a sua reservaRESERVATION_NAME: o nome da reserva que a atribuição usaTIMESTAMP: a data/hora que representa o ponto específico no tempo em que a lista de atribuições é verificada
O resultado é semelhante ao seguinte:
+-------------------------+---------------------------+---------------+----------+ | reservation_name | assignee_id | assignee_type | job_type | +-------------------------+---------------------------+---------------+----------+ | test-reservation | project_1 | PROJECT | QUERY | | test-reservation | project_2 | PROJECT | QUERY | +-------------------------+---------------------------+---------------+----------+
Identificar o estado de atribuição de uma reserva quando um trabalho específico foi executado
Para apresentar as atribuições que estavam ativas quando uma determinada tarefa foi executada, use o exemplo seguinte.
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';
Substitua o seguinte:
REGION: a região onde se encontra a sua reservaRESERVATION_NAME: o nome da reserva que a atribuição usaPROJECT_ID: o ID do seu Google Cloud projeto onde a tarefa foi executadaJOB_ID: o ID da tarefa em relação ao qual o estado da atribuição foi verificado