Vista ASSIGNMENT_CHANGES
La vista INFORMATION_SCHEMA.ASSIGNMENT_CHANGES
contiene una lista casi en tiempo real de todos los cambios realizados en las asignaciones del proyecto de administración. Cada fila representa un cambio en una tarea. Para obtener más información sobre las reservas, consulta el artículo Introducción a las reservas.
Permiso obligatorio
Para consultar la vista INFORMATION_SCHEMA.ASSIGNMENT_CHANGES
, necesitas el permiso de gestión de identidades y accesos (IAM) bigquery.reservationAssignments.list
del proyecto.
Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye el permiso necesario:
roles/bigquery.resourceAdmin
roles/bigquery.resourceEditor
roles/bigquery.resourceViewer
roles/bigquery.user
roles/bigquery.admin
Para obtener más información sobre los permisos de BigQuery, consulta Control de acceso con gestión de identidades y accesos.
Esquema
La vista INFORMATION_SCHEMA.ASSIGNMENT_CHANGES
tiene el siguiente esquema:
Nombre de la columna | Tipo de datos | Valor |
---|---|---|
change_timestamp |
TIMESTAMP |
Hora en la que se produjo el cambio. |
project_id |
STRING |
ID del proyecto de administración. |
project_number |
INTEGER |
Número del proyecto de administración. |
assignment_id |
STRING |
ID que identifica de forma única la tarea. |
reservation_name |
STRING |
Nombre de la reserva que usa la asignación. |
job_type |
STRING |
El tipo de trabajo que puede usar la reserva. Puede ser PIPELINE o QUERY . |
assignee_id |
STRING |
ID que identifica de forma exclusiva el recurso asignado. |
assignee_number |
INTEGER |
Número que identifica de forma exclusiva el recurso asignado. |
assignee_type |
STRING |
Tipo de recurso asignado. Puede ser organization ,
folder o project . |
action |
STRING |
Tipo de evento que se ha producido con la asignación. Puede ser CREATE , UPDATE o DELETE . |
user_email |
STRING |
Dirección de correo del usuario o asunto de la federación de identidades de la plantilla que ha realizado el cambio. google para ver los cambios
que ha hecho Google. NULL si la dirección de correo no se conoce.
|
state |
STRING |
Estado de la asignación. Puede ser PENDING o
ACTIVE . |
Conservación de datos
Esta vista contiene las tareas actuales y las eliminadas, que se conservan durante un máximo de 41 días. Después, se quitan de la vista.
Ámbito y sintaxis
Las consultas en esta vista deben incluir un calificador de región. Si no especifica un calificador regional, los metadatos se recuperan de todas las regiones. En la siguiente tabla se explica el ámbito de la región de esta vista:
Nombre de la vista | Ámbito de los recursos | Ámbito de la región |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES[_BY_PROJECT] |
Nivel de proyecto | REGION |
-
Opcional:
PROJECT_ID
: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado. -
REGION
: cualquier nombre de región del conjunto de datos. Por ejemplo,`region-us`
.
Ejemplos
Buscar los últimos cambios en una tarea
En el siguiente ejemplo se muestra el usuario que ha hecho la última actualización de una tarea concreta en una fecha específica.
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;
El resultado es similar al siguiente:
+--------------------------------+-----------------------+--------------------+-----------------+ | user_email | change_timestamp | reservation_name | assignment_id | +--------------------------------+-----------------------+--------------------+-----------------+ | cloudysanfrancisco@gmail.com |2021-09-30 09:30:00 UTC| my_reservation | assignment_01 | +--------------------------------+-----------------------+--------------------+-----------------+
Identificar el estado de asignación de una reserva en un momento concreto
En el siguiente ejemplo se muestran todas las asignaciones activas de una reserva en un momento determinado.
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';
Haz los cambios siguientes:
REGION
: la región en la que se encuentra tu reservaRESERVATION_NAME
: el nombre de la reserva que usa la asignaciónTIMESTAMP
: la marca de tiempo que representa el momento específico en el que se comprueba la lista de asignaciones.
El resultado es similar al siguiente:
+-------------------------+---------------------------+---------------+----------+ | reservation_name | assignee_id | assignee_type | job_type | +-------------------------+---------------------------+---------------+----------+ | test-reservation | project_1 | PROJECT | QUERY | | test-reservation | project_2 | PROJECT | QUERY | +-------------------------+---------------------------+---------------+----------+
Identificar el estado de asignación de una reserva cuando se ejecutó un trabajo concreto
Para mostrar las asignaciones que estaban activas cuando se ejecutó un trabajo determinado, usa el siguiente ejemplo.
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';
Haz los cambios siguientes:
REGION
: la región en la que se encuentra tu reservaRESERVATION_NAME
: el nombre de la reserva que usa la asignaciónPROJECT_ID
: el ID del proyecto Google Cloud en el que se ha ejecutado el trabajoJOB_ID
: el ID del trabajo con el que se ha comprobado el estado de la asignación