En este documento, se explica cómo puedes supervisar los cambios de estado del trabajo mediante notificaciones de Pub/Sub y cómo transmitir esas notificaciones a BigQuery de manera opcional.
Antes de comenzar
- Si nunca usaste Batch, revisa Comienza a usar Batch y completa los requisitos previos para proyectos y usuarios a fin de habilitar Batch.
Funciones obligatorias
-
Pídele a tu administrador que te otorgue el rol de IAM Editor de Pub/Sub (
roles/pubsub.editor
) en el tema o proyecto de Pub/Sub a fin de obtener los permisos necesarios para crear un tema de Pub/Sub. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.Es posible que también puedas obtener los permisos necesarios mediante funciones personalizadas, o bien otras funciones predefinidas.
-
A fin de asegurarte de que la cuenta de servicio del trabajo tenga los permisos necesarios para publicar notificaciones de Pub/Sub, pídele a tu administrador que otorgue a la cuenta de servicio del trabajo el rol de IAM de Publicador de Pub/Sub (
roles/pubsub.publisher
) en tu tema de Pub/Sub.Según la configuración predeterminada, la cuenta de servicio del trabajo es la cuenta de servicio predeterminada de Compute Engine.
-
Si quieres asegurarte de que la cuenta de servicio de Pub/Sub tenga los permisos necesarios para transmitir notificaciones de Pub/Sub a BigQuery, pídele a tu administrador que le otorgue a la cuenta de servicio de Pub/Sub el rol de IAM de Editor de datos de BigQuery (
roles/bigquery.dataEditor
) en el proyecto.Para obtener más información sobre cómo asignar esta función, consulta Asigna funciones de BigQuery a la cuenta de servicio de Pub/Sub.
-
A fin de obtener los permisos necesarios para consultar las notificaciones de Pub/Sub en BigQuery, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Usuario de trabajo de BigQuery (
roles/bigquery.jobUser
) en el proyecto -
Visualizador de datos de BigQuery (
roles/bigquery.dataViewer
) en tu tabla de BigQuery
-
Usuario de trabajo de BigQuery (
Usa las notificaciones de Pub/Sub con Batch
Batch admite notificaciones de Pub/Sub sobre los estados de los trabajos y las tareas para alertas, observabilidad o uso con BigQuery.
Puedes recibir notificaciones cada vez que cambie el estado de un trabajo o una tarea, o puedes filtrar según los estados especificados de la tarea o el trabajo. Los atributos de notificaciones de estado de tareas se aplican a todas las tareas de un trabajo, no a tareas específicas dentro de un trabajo. Para obtener más información sobre los estados de los trabajos y las tareas, consulta Ciclo de vida de los trabajos.
Habilita las notificaciones para un trabajo
Si quieres habilitar las notificaciones de Pub/Sub para un trabajo, haz lo siguiente:
- Crea un tema de Pub/Sub en el mismo proyecto en el que deseas ejecutar tu trabajo por lotes.
- De manera opcional, configura Pub/Sub para transmitir notificaciones a BigQuery.
- Crea un trabajo que envíe notificaciones de Pub/Sub.
Configura Pub/Sub para transmitir notificaciones a BigQuery
Si deseas conservar el historial de cambios de estado de trabajos y tareas y consultar esos cambios, puedes transmitir las notificaciones de Pub/Sub a BigQuery mediante las siguientes acciones:
Si aún no lo hiciste, habilita las notificaciones de un trabajo.
Si aún no tienes uno, crea un conjunto de datos de BigQuery.
Crea una tabla de BigQuery con la siguiente definición de esquema:
[ { "name": "data", "type": "STRING" }, { "name": "subscription_name", "type": "STRING" }, { "name": "message_id", "type": "STRING" }, { "name": "attributes", "type": "JSON" }, { "name": "publish_time", "type": "TIMESTAMP", "mode": "NULLABLE" } ]
Crea una suscripción de Pub/Sub que se transmita a BigQuery y especifica lo siguiente:
- Tema: Selecciona el tema de Pub/Sub que creaste anteriormente.
- Project: Selecciona el proyecto que contiene tu tabla de BigQuery.
- Conjunto de datos: Selecciona el conjunto de datos que contiene la tabla de BigQuery.
- Tabla: Selecciona la tabla que creaste en el paso anterior.
- Selecciona Use topic schema.
- Selecciona Escribir metadatos.
A medida que se ejecuta el trabajo por lotes, Pub/Sub transmite notificaciones a BigQuery.
Analiza notificaciones en BigQuery
Analizar las notificaciones de Pub/Sub en BigQuery mediante la ejecución de una consulta en la columna attributes
de la tabla de BigQuery Los atributos que puedes consultar dependen de si configuraste notificaciones para tareas o trabajos.
Puedes consultar los siguientes atributos de las notificaciones de tareas:
JobUID
NewTaskState
Region
TaskName
TaskUID
Type
Puedes consultar los siguientes atributos de notificaciones de trabajos:
JobUID
JobName
NewJobState
Region
Type
Por ejemplo, la siguiente consulta muestra el JobUID
asociado con cada notificación:
select attributes.JobUID from `example-table`
¿Qué sigue?
- Obtén información sobre cómo analizar un trabajo mediante registros.