Ce document explique comment surveiller les changements d'état des jobs et des tâches en configurant des notifications Pub/Sub. Vous pouvez utiliser les notifications pour divers cas d'utilisation. Par exemple, ce document explique comment diffuser les notifications vers une table BigQuery, que vous pouvez utiliser pour analyser les données. Pour en savoir plus sur les cas d'utilisation des notifications Pub/Sub, consultez la section Choisir un type d'abonnement dans la documentation Pub/Sub.
Si vous souhaitez exporter toutes les informations d'un job vers BigQuery, consultez plutôt Exporter les informations d'un job.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
- Si vous souhaitez configurer des notifications Pub/Sub pour vos tâches par lot, procédez comme suit :
-
Enable the Pub/Sub API.
-
Pour obtenir les autorisations nécessaires pour configurer un sujet et un abonnement Pub/Sub, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Pub/Sub (
roles/pubsub.editor
) sur un projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
-
- Les exigences supplémentaires varient en fonction du type d'abonnement que vous décidez de configurer. Par exemple, si vous souhaitez diffuser et analyser des notifications dans une table BigQuery, procédez comme suit :
-
Enable the BigQuery API.
-
Pour vous assurer que le compte de service Pub/Sub dispose des autorisations nécessaires pour diffuser des notifications Pub/Sub dans BigQuery, demandez à votre administrateur d'accorder au compte de service Pub/Sub le rôle IAM Éditeur de données BigQuery (
roles/bigquery.dataEditor
) sur le projet du sujet Pub/Sub.Pour en savoir plus sur l'attribution de ce rôle, consultez la page Attribuer des rôles BigQuery au compte de service Pub/Sub.
- Assurez-vous que tous les utilisateurs pour lesquels vous souhaitez analyser les notifications dans BigQuery disposent des autorisations requises.
Pour obtenir les autorisations nécessaires pour interroger les notifications Pub/Sub dans BigQuery, demandez à votre administrateur de vous accorder les rôles IAM suivants:
-
Utilisateur de job BigQuery (
roles/bigquery.jobUser
) sur le projet de la table BigQuery -
Lecteur de données BigQuery (
roles/bigquery.dataViewer
) sur la table BigQuery
-
Utilisateur de job BigQuery (
-
Configurer des notifications Pub/Sub pour Batch
Batch prend en charge les notifications Pub/Sub pour les modifications des états des tâches et des jobs, que vous pouvez utiliser pour les alertes, l'observabilité ou l'analyse.
Pour configurer des notifications Pub/Sub pour une ou plusieurs tâches de traitement par lot, procédez comme suit:
- Créez ou identifiez un sujet Pub/Sub pour vos tâches Batch.
- Créez au moins un abonnement pour votre sujet afin de recevoir et d'utiliser ses notifications.
- Configurez des tâches pour envoyer des notifications à votre sujet.
Une fois que vous avez configuré les notifications Pub/Sub pour Batch, vous pouvez éventuellement configurer chaque tâche pour qu'elle envoie des notifications spécifiques. Vous pouvez recevoir des notifications chaque fois que l'état d'une tâche ou d'une tâche change, ou filtrer les notifications pour des états de tâche ou de tâche spécifiques. Plus précisément, Pub/Sub n'envoie pas de notifications pour le premier état dans lequel une tâche ou une tâche entre. Pub/Sub n'envoie des notifications que lorsqu'une tâche passe d'un état à un autre. Pour en savoir plus sur les attributs que vous pouvez configurer pour les notifications Pub/Sub, consultez Créer et exécuter une tâche qui envoie des notifications d'état Pub/Sub.
Créer ou identifier un sujet Pub/Sub pour Batch
Créez un sujet Pub/Sub ou identifiez un sujet Pub/Sub existant que vous souhaitez utiliser pour les notifications par lot.
Comme expliqué plus loin dans ce document, les jobs ne peuvent pas envoyer de notifications à ce sujet Pub/Sub tant que votre administrateur n'a pas accordé d'autorisations supplémentaires pour ce faire.
Créer un abonnement pour recevoir et utiliser les notifications
Pour recevoir et utiliser les messages publiés dans un sujet Pub/Sub, vous devez créer au moins un abonnement à ce sujet.
Par exemple, vous pouvez configurer votre sujet pour diffuser ses notifications dans BigQuery. Ensuite, lorsque vous exécutez des tâches qui publient des notifications, vous pouvez les recevoir et les analyser dans une table BigQuery. Pour en savoir plus, consultez Exemple: Recevoir et utiliser des notifications Pub/Sub dans BigQuery dans ce document.
Pour en savoir plus sur les abonnements et les autres options d'abonnement, consultez la présentation des abonnements dans la documentation Pub/Sub.
Configurer des tâches pour envoyer des notifications à votre sujet
Pour configurer des tâches qui envoient des notifications Pub/Sub à votre sujet, suivez les instructions de la page Créer et exécuter une tâche qui envoie des notifications d'état Pub/Sub. Plus précisément, procédez comme suit:
- Si vous ne l'avez pas déjà fait, demandez à votre administrateur d'accorder toutes les autorisations requises pour que les tâches puissent envoyer des notifications à votre sujet Pub/Sub. Ces autorisations sont répertoriées dans la section Rôles requis de cette page.
- Créez et exécutez une tâche qui active les notifications Pub/Sub en définissant le champ
notifications
de la tâche.
Exemple: Recevoir et utiliser des notifications Pub/Sub dans BigQuery
Les sections suivantes expliquent un exemple de cas d'utilisation pour recevoir et utiliser des notifications Pub/Sub dans BigQuery. En configurant un abonnement qui diffuse les notifications Pub/Sub de votre sujet dans une table BigQuery, vous pouvez conserver l'historique des modifications d'état des tâches et des jobs, et interroger ces modifications.
Configurer un abonnement qui diffuse des notifications dans BigQuery
Pour configurer un abonnement Pub/Sub qui diffuse des notifications à partir d'un sujet vers une table BigQuery, procédez comme suit:
Si vous ne l'avez pas déjà fait, créez ou identifiez un sujet Pub/Sub pour Batch.
Si vous n'en avez pas encore, créez un ensemble de données BigQuery.
Créez une table BigQuery avec la définition de schéma suivante:
[ { "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" } ]
Créez un abonnement Pub/Sub qui diffuse des flux vers BigQuery et spécifiez les options suivantes:
- Topic (Sujet) : sélectionnez le sujet Pub/Sub pour Batch.
- Projet: sélectionnez le projet contenant votre table BigQuery.
- Ensemble de données: sélectionnez l'ensemble de données contenant votre table BigQuery.
- Table: sélectionnez la table que vous avez créée à l'étape précédente.
- Sélectionnez Utiliser un schéma avec sujet.
- Sélectionnez Écrire des métadonnées.
Désormais, chaque fois qu'une notification Pub/Sub est envoyée à ce sujet, Pub/Sub la diffuse dans la table BigQuery. Une fois que vous avez configuré des tâches pour envoyer des notifications Pub/Sub, vous pouvez analyser les notifications dans BigQuery.
Analyser les notifications dans BigQuery
Vous pouvez analyser les notifications dans BigQuery après avoir configuré un abonnement à une table BigQuery pour votre sujet et exécuté des tâches qui envoient des notifications à votre sujet. Pour analyser les notifications dans BigQuery, exécutez une requête sur la colonne attributes
de la table BigQuery. Les attributs que vous pouvez interroger dépendent de la configuration des notifications pour les tâches ou les jobs.
Vous pouvez interroger les attributs suivants des notifications de tâche:
JobUID
NewTaskState
Region
TaskName
TaskUID
Type
Vous pouvez interroger les attributs suivants des notifications de tâches:
JobUID
JobName
NewJobState
Region
Type
Par exemple, la requête suivante affiche les JobUID
associés à chaque notification:
select attributes.JobUID from `example-table`
Étape suivante
- Découvrez comment créer et exécuter une tâche qui envoie des notifications d'état Pub/Sub.
- En savoir plus sur les abonnements Pub/Sub
- En savoir plus sur les analyses BigQuery