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.resourceAdmin
roles/bigquery.resourceEditor
roles/bigquery.resourceViewer
roles/bigquery.user
roles/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 Trusted 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 Trusted Cloud projeto onde a tarefa foi executadaJOB_ID
: o ID da tarefa em relação ao qual o estado da atribuição foi verificado