Surveiller l'état d'un job à l'aide des notifications Pub/Sub et de BigQuery

Ce document explique comment surveiller les changements d'état d'une tâche et d'une tâche la configuration des notifications Pub/Sub. Vous pouvez utiliser les notifications pour divers cas d'utilisation. Par exemple, ce document explique comment diffuser dans une table BigQuery, que vous pouvez utiliser pour analyser données. Pour en savoir plus sur les cas d'utilisation des notifications Pub/Sub, consultez Choisir un type d'abonnement dans la documentation Pub/Sub.

Avant de commencer

  • Si vous n'avez jamais utilisé Batch auparavant, consultez Premiers pas avec Batch et activez Batch en suivant la les conditions préalables pour les projets et les utilisateurs.
  • Si vous souhaitez configurer les notifications Pub/Sub pour vos Pour les jobs par lot, procédez comme suit:
    1. Activez l'API Pub/Sub

      Activer l'API

    2. 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 section Gérer les accès.

      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 que vous décidez de configurer. Par exemple, si vous souhaitez diffuser et analyser à une table BigQuery, vous devez procéder comme suit:
    1. Activez l'API BigQuery

      Activer l'API

    2. Pour s'assurer que le compte de service Pub/Sub dispose des autorisations les autorisations nécessaires pour diffuser les notifications Pub/Sub vers BigQuery ; demandez à votre administrateur d'accorder au compte de service Pub/Sub le rô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 Attribuez des rôles BigQuery au compte de service Pub/Sub.

    3. Assurez-vous que tous les utilisateurs dans lesquels vous souhaitez analyser les notifications 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 le rôles IAM suivants:

Configurer les notifications Pub/Sub pour Batch

Batch est compatible avec les notifications Pub/Sub pour les modifications apportées aux jobs et des états de tâches, que vous pouvez utiliser pour les alertes, l'observabilité ou l'analyse.

Configurer les notifications Pub/Sub pour un ou plusieurs lots tâches, suivez la procédure décrite dans les sections suivantes:

  1. Créez ou identifiez un sujet Pub/Sub pour vos jobs Batch.
  2. Créez au moins un abonnement pour votre sujet afin de recevoir et d'utiliser ses notifications.
  3. Configurez des tâches pour envoyer des notifications à votre sujet.

Après avoir configuré les notifications Pub/Sub pour Batch, vous pouvez vous pouvez configurer chaque job pour qu'il envoie des notifications spécifiques. Vous pouvez recevoir chaque fois que l'état d'une tâche ou d'une tâche change, ou vous pouvez filtrer les des notifications pour des états de tâche ou de tâche spécifiques. Il est à noter que Pub/Sub envoyer des notifications pour le premier état d'une tâche ou d'une tâche ; Pub/Sub n'envoie des notifications que lorsqu'une tâche passe d'un état à un autre. Pour plus des informations sur les attributs que vous pouvez configurer pour Pub/Sub ; notifications, consultez Créez et exécutez une tâche qui envoie des notifications d'état Pub/Sub.

Créer ou identifier un sujet Pub/Sub pour Batch

Créer un sujet Pub/Sub ou identifier un sujet Pub/Sub existant que vous souhaitez utiliser pour les notifications de traitement par lot.

Comme expliqué plus loin dans ce document, les tâches ne peuvent pas envoyer de notifications aux ce sujet Pub/Sub jusqu'à ce que votre administrateur accorde des les autorisations qui le permettent.

Créez un abonnement pour recevoir et utiliser les notifications

Pour recevoir et utiliser les messages publiés dans un sujet Pub/Sub, vous doit créer au moins un abonnement associé à ce sujet.

Par exemple, vous pouvez configurer votre sujet pour qu'il diffuse ses et envoyer des notifications à BigQuery. Ensuite, lorsque vous exécutez des jobs publier des notifications, vous pouvez les recevoir et les analyser dans un 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 Vue d'ensemble des abonnements dans le dans la documentation Pub/Sub.

Configurez des tâches pour envoyer des notifications à votre sujet.

Pour configurer des jobs qui envoient des notifications Pub/Sub au suivez les instructions du Créer et exécuter un job qui envoie des notifications d'état Pub/Sub . Plus précisément, procédez comme suit:

  1. Si vous ne l'avez pas déjà fait, demandez à votre administrateur de vous accorder toutes les autorisations nécessaire pour que les jobs envoient des notifications à votre sujet Pub/Sub. Ces autorisations sont répertoriées dans Section Rôles requis de cette page.
  2. Créer et exécuter un job qui active les notifications Pub/Sub en définissant le champ notifications du job.

Exemple: Recevoir et utiliser des notifications Pub/Sub dans BigQuery

Les sections suivantes décrivent un exemple de cas d'utilisation pour recevoir et utiliser Notifications Pub/Sub dans BigQuery En configurant qui diffuse les notifications Pub/Sub de votre sujet vers table BigQuery, vous pouvez conserver l'historique de l'état des tâches et de les interroger.

Configurer un abonnement qui diffuse les notifications vers BigQuery

Configurer un abonnement Pub/Sub qui diffuse les notifications d'un à une table BigQuery en procédant comme suit:

  1. Si vous ne l'avez pas déjà fait, créez ou identifiez un sujet Pub/Sub pour Batch.

  2. Si vous n'en avez pas encore, Créer un ensemble de données BigQuery

  3. Créer 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"
      }
    ]
    
  4. Créer un abonnement Pub/Sub qui diffuse des flux vers BigQuery et spécifiez les options suivantes:

    • Sujet: sélectionnez le sujet Pub/Sub pour Batch.
    • Project (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 de sujet.
    • Sélectionnez Écrire les métadonnées.

Dès qu'une notification Pub/Sub est envoyée à ce sujet, Pub/Sub diffuse cette notification dans la table BigQuery. Après avoir configuré des jobs 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é à une table BigQuery pour votre sujet et exécuter des tâches envoyer des notifications à votre sujet. Pour analyser les notifications Dans BigQuery, exécutez une requête dans la colonne attributes de la table BigQuery. Les attributs qui 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âches:

  • JobUID
  • NewTaskState
  • Region
  • TaskName
  • TaskUID
  • Type

Vous pouvez interroger les attributs suivants des notifications d'offres d'emploi:

  • 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