Vista ASSIGNMENT_CHANGES
La vista INFORMATION_SCHEMA.ASSIGNMENT_CHANGES
contiene una lista casi en tiempo real
de todos los cambios que se realizaron en las asignaciones del proyecto de administración. Cada fila representa un solo cambio que se realizó en una asignación única. Para obtener más información sobre la reserva, consulta Introducción a Reservations.
Permiso necesario
Para consultar la vista INFORMATION_SCHEMA.ASSIGNMENT_CHANGES
, necesitas el permiso bigquery.reservationAssignments.list
de Identity and Access Management (IAM) para el proyecto.
Cada uno de los siguientes roles predefinidos de IAM incluye el permiso requerido:
roles/bigquery.resourceAdmin
roles/bigquery.resourceEditor
roles/bigquery.resourceViewer
roles/bigquery.user
roles/bigquery.admin
Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.
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 la asignación de forma única. |
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 el recurso asignado de forma única. |
assignee_number |
INTEGER |
Número que identifica el recurso asignado de forma única. |
assignee_type |
STRING |
Tipo de recurso asignado. Puede ser organization , folder o project . |
action |
STRING |
Tipo de evento que ocurrió con la asignación. Puede ser CREATE , UPDATE o DELETE . |
user_email |
STRING |
Dirección de correo electrónico del usuario o persona de la federación de Workforce Identity que realizó el cambio. google para los cambios que realizó Google. NULL si se desconoce la dirección de correo electrónico.
|
state |
STRING |
Estado de la asignación. Puede ser PENDING o ACTIVE . |
Retención de datos
Esta vista contiene asignaciones actuales y asignaciones borradas que se conservan durante un máximo de 41 días después de los que se quitan de la vista.
Permiso y sintaxis
Las consultas realizadas a esta vista deben incluir un calificador de región. Si no especificas un calificador regional, los metadatos se recuperan de todas las regiones. En la siguiente tabla, se explica el permiso de la región para esta vista:
Nombre de la vista | Permiso del recurso | Permiso de la región |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ASSIGNMENT_CHANGES[_BY_PROJECT] |
Nivel de proyecto | REGION |
-
Opcional:
PROJECT_ID
: Es el ID de tu proyecto de Google Cloud . Si no se especifica, se usa el proyecto predeterminado. -
REGION
: Cualquier nombre de región del conjunto de datos. Por ejemplo,`region-us`
.
Ejemplos
Cómo encontrar los cambios más recientes en una tarea
En el siguiente ejemplo, se muestra el usuario que actualizó la última asignación a una en particular dentro de 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 | +--------------------------------+-----------------------+--------------------+-----------------+
Identifica el estado de asignación de una reserva en un momento específico
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';
Reemplaza lo siguiente:
REGION
: Es la región en la que se encuentra tu reserva.RESERVATION_NAME
: Es el nombre de la reserva que usa la asignación.TIMESTAMP
: Es la marca de tiempo que representa el punto específico en el tiempo en el que se verifica la lista de tareas.
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 en particular
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';
Reemplaza lo siguiente:
REGION
: Es la región en la que se encuentra tu reserva.RESERVATION_NAME
: Es el nombre de la reserva que usa la asignación.PROJECT_ID
: Es el ID de tu proyecto de Google Cloud en el que se ejecutó el trabajo.JOB_ID
: ID del trabajo con el que se verificó el estado de la asignación