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

Ce document explique comment surveiller les changements d'état d'une tâche à l'aide de notifications Pub/Sub et comment diffuser éventuellement ces notifications vers BigQuery.

Avant de commencer

Rôles requis

Utiliser les notifications Pub/Sub avec Batch

Batch est compatible avec les notifications Pub/Sub sur les états des tâches et des tâches pour les alertes, l'observabilité ou une utilisation avec BigQuery.

Vous pouvez recevoir des notifications chaque fois que l'état d'une tâche change, ou vous pouvez filtrer les données en fonction des états d'une tâche ou d'une tâche spécifiés. Les attributs de notifications d'état de tâche sont appliqués pour toutes les tâches d'une tâche, et non pour des tâches spécifiques au sein d'une tâche. Pour en savoir plus sur les états des tâches et des tâches, consultez la page Cycle de vie des tâches.

Activer les notifications pour une tâche

Pour activer les notifications Pub/Sub pour une tâche, procédez comme suit:

  1. Créez un sujet Pub/Sub dans le projet dans lequel vous souhaitez exécuter votre job par lot.
  2. Vous pouvez également configurer Pub/Sub pour diffuser les notifications vers BigQuery.
  3. Créez une tâche qui envoie des notifications Pub/Sub.

Configurer Pub/Sub pour diffuser les notifications dans BigQuery

Si vous souhaitez conserver l'historique des changements d'état des tâches et que vous souhaitez interroger ces modifications, vous pouvez diffuser des notifications Pub/Sub vers BigQuery en procédant comme suit:

  1. Si vous ne l'avez pas déjà fait, activez les notifications pour une tâche.

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

  3. 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"
      }
    ]
    
  4. Créez un abonnement Pub/Sub qui diffuse des données vers BigQuery et spécifiez les éléments suivants:

    • Topic (Sujet) : sélectionnez le sujet Pub/Sub que vous avez créé précédemment.
    • 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 Use topic schema (Utiliser un schéma avec thèmes).
    • Sélectionnez Écrire les métadonnées.

Lorsque la tâche par lot s'exécute, Pub/Sub diffuse les notifications vers BigQuery.

Analyser les notifications dans BigQuery

Analysez les notifications Pub/Sub dans BigQuery en exécutant une requête dans la colonne attributes de la table BigQuery. Les attributs que vous pouvez interroger varient selon que vous avez configuré les notifications pour les tâches ou les tâches.

Vous pouvez interroger les attributs suivants des notifications de tâches:

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

Vous pouvez interroger les attributs de notifications de tâches suivants:

  • JobUID
  • JobName
  • NewJobState
  • Region
  • Type

Par exemple, la requête suivante affiche le JobUID associé à chaque notification:

select attributes.JobUID from `example-table`

Étapes suivantes