Monitorare lo stato del job utilizzando le notifiche Pub/Sub e BigQuery

Questo documento spiega come monitorare le modifiche dello stato di job e attività impostando le notifiche Pub/Sub. Puoi utilizzare le notifiche per vari casi d'uso, ad esempio, questo documento spiega come trasmettere le notifiche in una tabella BigQuery, che puoi utilizzare per analizzare i dati. Per saperne di più sui casi d'uso delle notifiche Pub/Sub, consulta Scegliere un tipo di sottoscrizione nella documentazione di Pub/Sub.

Prima di iniziare

  • Se non hai mai utilizzato Batch, consulta Inizia a utilizzare Batch e abilita Batch completando i prerequisiti per progetti e utenti.
  • Se vuoi configurare le notifiche Pub/Sub per i tuoi job batch, segui questi passaggi:
    1. Attiva l'API Pub/Sub.

      Abilita l'API

    2. Per ottenere le autorizzazioni necessarie per configurare un argomento e una sottoscrizione Pub/Sub, chiedi all'amministratore di concederti il ruolo IAM Editor Pub/Sub (roles/pubsub.editor) per un progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

      Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

  • I requisiti aggiuntivi variano in base al tipo di abbonamento che decidi di configurare. Ad esempio, se vuoi trasmettere e analizzare le notifiche in una tabella BigQuery, devi seguire questi passaggi:
    1. Attiva l'API BigQuery.

      Abilita l'API

    2. Per assicurarti che l'account di servizio Pub/Sub disponga delle autorizzazioni necessarie per trasmettere notifiche Pub/Sub a BigQuery, chiedi all'amministratore di concedere all'account di servizio Pub/Sub il ruolo IAM Editor dati BigQuery (roles/bigquery.dataEditor) nel progetto dell'argomento Pub/Sub.

      Per maggiori informazioni sull'assegnazione di questo ruolo, consulta Assegnare i ruoli BigQuery all'account di servizio Pub/Sub.

    3. Assicurati che tutti gli utenti che vogliono analizzare le notifiche in BigQuery dispongano delle autorizzazioni richieste.

      Per ottenere le autorizzazioni necessarie per eseguire query sulle notifiche Pub/Sub in BigQuery, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Configurare le notifiche Pub/Sub per batch

Batch supporta le notifiche Pub/Sub per le modifiche agli stati di job e attività, che puoi utilizzare per avvisi, osservabilità o analisi.

Per configurare le notifiche Pub/Sub per uno o più job batch, completa i passaggi descritti nelle sezioni seguenti:

  1. Crea o identifica un argomento Pub/Sub per i tuoi job batch.
  2. Crea almeno una sottoscrizione affinché il tuo argomento riceva e utilizzi le relative notifiche.
  3. Configura i job per inviare notifiche al tuo argomento.

Dopo aver configurato le notifiche Pub/Sub per Batch, puoi facoltativamente configurare ciascun job in modo che invii notifiche specifiche. Puoi ricevere notifiche ogni volta che gli stati del job o dell'attività cambiano oppure puoi filtrare le notifiche per stati specifici del job o dell'attività. In particolare, Pub/Sub non invia notifiche per il primo stato in cui entra un job o un'attività; Pub/Sub invia notifiche solo quando un job passa da uno stato a un altro. Per ulteriori informazioni sugli attributi che puoi configurare per le notifiche Pub/Sub, consulta Creare ed eseguire un job che invia notifiche dello stato di Pub/Sub.

Crea o identifica un argomento Pub/Sub per Batch

Crea un nuovo argomento Pub/Sub o identifica un argomento Pub/Sub esistente che vuoi utilizzare per le notifiche batch.

Come spiegato più avanti in questo documento, i job non possono inviare notifiche a questo argomento Pub/Sub finché l'amministratore non concede autorizzazioni aggiuntive che lo consentono.

Crea un abbonamento per ricevere e usare le notifiche

Per ricevere e utilizzare i messaggi pubblicati in un argomento Pub/Sub, devi creare almeno una sottoscrizione all'argomento.

Ad esempio, un'opzione è configurare l'argomento per trasmettere le notifiche in streaming a BigQuery. Quindi, quando esegui job che pubblicano notifiche, puoi ricevere e analizzare le notifiche in una tabella BigQuery. Per ulteriori informazioni, consulta Esempio: ricevere e utilizzare le notifiche Pub/Sub in BigQuery in questo documento.

In caso contrario, per saperne di più sugli abbonamenti e su altre opzioni di abbonamento, consulta la panoramica degli abbonamenti nella documentazione di Pub/Sub.

Configura i job per inviare notifiche al tuo argomento

Per configurare i job che inviano notifiche Pub/Sub all'argomento, segui le istruzioni riportate nella pagina Creare ed eseguire un job che invia notifiche dello stato Pub/Sub. In particolare, segui questi passaggi:

  1. Se non lo hai già fatto, chiedi all'amministratore di concedere tutte le autorizzazioni necessarie ai job per inviare notifiche al tuo argomento Pub/Sub. Queste autorizzazioni sono elencate nella sezione Ruoli obbligatori di questa pagina.
  2. Crea ed esegui un job che abilita le notifiche Pub/Sub definendo il campo notifications del job.

Esempio: ricevere e utilizzare le notifiche Pub/Sub in BigQuery

Le sezioni seguenti spiegano un caso d'uso di esempio per la ricezione e l'utilizzo delle notifiche Pub/Sub in BigQuery. Configurando una sottoscrizione che trasmette i flussi delle notifiche Pub/Sub dell'argomento a una tabella BigQuery, puoi conservare la cronologia delle modifiche dello stato dei job e delle attività ed eseguire query su queste modifiche.

Configura una sottoscrizione che trasmette i flussi di notifiche a BigQuery

Configura una sottoscrizione Pub/Sub per il flusso di notifiche da un argomento a una tabella BigQuery seguendo questi passaggi:

  1. Se non l'hai ancora fatto, crea o identifica un argomento Pub/Sub per Batch.

  2. Se non ne hai già uno, crea un set di dati BigQuery.

  3. Crea una tabella BigQuery con la seguente definizione di schema:

    [
      {
        "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. Crea una sottoscrizione Pub/Sub per i flussi di dati a BigQuery e specifica le seguenti opzioni:

    • Argomento: seleziona l'argomento Pub/Sub per Batch.
    • Progetto: seleziona il progetto che contiene la tua tabella BigQuery.
    • Set di dati: seleziona il set di dati contenente la tabella BigQuery.
    • Tabella: seleziona la tabella che hai creato nel passaggio precedente.
    • Seleziona Utilizza schema argomento.
    • Seleziona Scrivi metadati.

Ora, ogni volta che viene inviata una notifica Pub/Sub all'argomento, Pub/Sub trasmette la notifica in modalità flusso alla tabella BigQuery. Dopo aver configurato i job per l'invio di notifiche Pub/Sub, puoi analizzare le notifiche in BigQuery.

Analizza le notifiche in BigQuery

Puoi analizzare le notifiche in BigQuery dopo aver configurato una sottoscrizione a una tabella BigQuery per l'argomento ed eseguito job che inviano notifiche all'argomento. Per analizzare le notifiche in BigQuery, esegui una query nella colonna attributes della tabella BigQuery. Gli attributi su cui puoi eseguire query dipendono dal fatto che tu abbia configurato o meno le notifiche per le attività o i job.

Puoi eseguire query sui seguenti attributi delle notifiche delle attività:

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

Puoi eseguire query sui seguenti attributi delle notifiche dei lavori:

  • JobUID
  • JobName
  • NewJobState
  • Region
  • Type

Ad esempio, la seguente query mostra il valore JobUID associato a ogni notifica:

select attributes.JobUID from `example-table`

Passaggi successivi