En este documento se explica cómo puede monitorizar los cambios de estado de las tareas y los trabajos configurando notificaciones de Pub/Sub. Puede usar las notificaciones en varios casos prácticos. Por ejemplo, en este documento se explica cómo transmitir las notificaciones a una tabla de BigQuery, que puede usar para analizar los datos. Para obtener más información sobre los casos prácticos de las notificaciones de Pub/Sub, consulta Elegir un tipo de suscripción en la documentación de Pub/Sub.
Si quieres exportar toda la información sobre un trabajo a BigQuery, consulta el artículo Exportar información de trabajos.
Antes de empezar
- Si no has usado Batch antes, consulta el artículo Empezar a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
- Si quieres configurar notificaciones de Pub/Sub para tus trabajos por lotes, sigue estos pasos:
-
Enable the Pub/Sub API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Para obtener los permisos que necesitas para configurar un tema y una suscripción de Pub/Sub, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Editor de Pub/Sub (
roles/pubsub.editor
) en un proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
-
- Los requisitos adicionales varían en función del tipo de suscripción que decidas configurar. Por ejemplo, si quieres transmitir y analizar notificaciones en una tabla de BigQuery, debes hacer lo siguiente:
-
Enable the BigQuery API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Para asegurarte de que la cuenta de servicio de Pub/Sub tiene los permisos necesarios para transmitir notificaciones de Pub/Sub a BigQuery, pide a tu administrador que le asigne el rol de gestión de identidades y accesos Editor de datos de BigQuery (
roles/bigquery.dataEditor
) en el proyecto del tema de Pub/Sub.Para obtener más información sobre cómo asignar este rol, consulta Asignar roles de BigQuery a la cuenta de servicio de Pub/Sub.
- Asegúrese de que los usuarios que quiera que analicen las notificaciones en BigQuery tengan los permisos necesarios.
Para obtener los permisos que necesitas para consultar notificaciones de Pub/Sub en BigQuery, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Usuario de tareas de BigQuery (
roles/bigquery.jobUser
) en el proyecto de la tabla de BigQuery -
Lector de datos de BigQuery (
roles/bigquery.dataViewer
) en la tabla de BigQuery
-
Usuario de tareas de BigQuery (
-
Configurar notificaciones de Pub/Sub para Batch
Batch admite notificaciones de Pub/Sub sobre los cambios en los estados de los trabajos y las tareas, que puedes usar para alertas, observabilidad o análisis.
Para configurar las notificaciones de Pub/Sub de uno o varios trabajos por lotes, sigue los pasos que se describen en las siguientes secciones:
- Crea o identifica un tema de Pub/Sub para tus trabajos de Batch.
- Crea al menos una suscripción para tu tema para recibir y usar sus notificaciones.
- Configura los trabajos para que envíen notificaciones a tu tema.
Después de configurar las notificaciones de Pub/Sub para Batch, puedes configurar cada trabajo para que envíe notificaciones específicas. Puedes recibir notificaciones cada vez que cambie el estado de un trabajo o una tarea, o bien filtrar las notificaciones por estados específicos. Es importante destacar que Pub/Sub no envía notificaciones del primer estado en el que se encuentra un trabajo o una tarea. Pub/Sub solo envía notificaciones cuando un trabajo pasa de un estado a otro.
Para obtener más información sobre los atributos que puede configurar para las notificaciones de Pub/Sub, consulte Crear y ejecutar un trabajo que envíe notificaciones de estado de Pub/Sub.
Crear o identificar un tema de Pub/Sub para Batch
Crea un tema de Pub/Sub o identifica un tema de Pub/Sub que ya tengas que quieras usar para las notificaciones de Batch.
Como se explica más adelante en este documento, los trabajos no pueden enviar notificaciones a este tema de Pub/Sub hasta que el administrador conceda permisos adicionales que lo permitan.
Crea una suscripción para recibir y usar las notificaciones
Para recibir y usar los mensajes publicados en un tema de Pub/Sub, debes crear al menos una suscripción a ese tema.
Por ejemplo, puede configurar el tema para que transmita sus notificaciones a BigQuery. Después, cuando ejecutes trabajos que publiquen notificaciones, podrás recibir y analizar las notificaciones en una tabla de BigQuery. Para obtener más información, consulta el ejemplo de recepción y uso de notificaciones de Pub/Sub en BigQuery de este documento.
De lo contrario, para obtener más información sobre las suscripciones y otras opciones de suscripción, consulta el resumen de las suscripciones en la documentación de Pub/Sub.
Configurar trabajos para enviar notificaciones a tu tema
Para configurar tareas que envíen notificaciones de Pub/Sub a tu tema, sigue las instrucciones de la página Crear y ejecutar una tarea que envíe notificaciones de estado de Pub/Sub. En concreto, haz lo siguiente:
- Si aún no lo ha hecho, pida a su administrador que conceda todos los permisos necesarios para que los trabajos envíen notificaciones a su tema de Pub/Sub. Estos permisos se indican en la sección Roles necesarios de esa página.
- Crea y ejecuta una tarea que habilite las notificaciones de Pub/Sub
definiendo el campo
notifications
de la tarea.
Ejemplo: recibir y usar notificaciones de Pub/Sub en BigQuery
En las siguientes secciones se explica un ejemplo de caso práctico para recibir y usar notificaciones de Pub/Sub en BigQuery. Si configuras una suscripción que transmita las notificaciones de Pub/Sub de tu tema a una tabla de BigQuery, podrás conservar el historial de los cambios de estado de los trabajos y las tareas, así como consultar esos cambios.
Configurar una suscripción que transmita notificaciones a BigQuery
Para configurar una suscripción de Pub/Sub que transmita notificaciones de un tema a una tabla de BigQuery, haz lo siguiente:
Si aún no lo has hecho, crea o identifica un tema de Pub/Sub para Batch.
Si aún no lo tiene, cree 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 transmita datos a BigQuery y especifica las siguientes opciones:
- Tema: selecciona el tema de Pub/Sub de Batch.
- Proyecto: selecciona el proyecto que contiene tu tabla de BigQuery.
- Conjunto de datos: selecciona el conjunto de datos que contiene tu tabla de BigQuery.
- Tabla: selecciona la tabla que has creado en el paso anterior.
- Selecciona Usar esquema de tema.
- Selecciona Escribir metadatos.
Ahora, cada vez que se envíe una notificación de Pub/Sub a ese tema, Pub/Sub transmitirá esa notificación a la tabla de BigQuery. Una vez que hayas configurado las tareas para enviar notificaciones de Pub/Sub, podrás analizar las notificaciones en BigQuery.
Analizar notificaciones en BigQuery
Puedes analizar las notificaciones en BigQuery después de configurar una suscripción a una tabla de BigQuery para tu tema y ejecutar trabajos que envíen notificaciones a tu tema. Para analizar las notificaciones en BigQuery, ejecuta una consulta en la columna attributes
de la tabla de BigQuery. Los atributos que puedes consultar dependen de si has configurado 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 las notificaciones de trabajos:
JobUID
JobName
NewJobState
Region
Type
Por ejemplo, la siguiente consulta muestra el JobUID
asociado a cada notificación:
select attributes.JobUID from `example-table`
Siguientes pasos
- Consulta cómo crear y ejecutar una tarea que envíe notificaciones de estado de Pub/Sub.
- Consulta más información sobre las suscripciones de Pub/Sub.
- Más información sobre las analíticas de BigQuery