Monitorar o status do job usando as notificações do Pub/Sub e o BigQuery

Neste documento, explicamos como monitorar alterações de estado de jobs e tarefas como configurar as notificações do Pub/Sub. Você pode usar as notificações para vários casos de uso. Por exemplo, este documento explica como transmitir os as notificações a uma tabela do BigQuery, que pode ser usada para analisar dados. Para saber mais sobre os casos de uso das notificações do Pub/Sub, consulte Escolher um tipo de assinatura na documentação do Pub/Sub.

Antes de começar

  • Se você nunca usou o Batch antes, revise Introdução ao Batch e ativar o Batch. Para isso, conclua pré-requisitos para projetos e usuários.
  • Se você quiser configurar notificações do Pub/Sub para Jobs em lote, faça o seguinte:
    1. Ative a API Pub/Sub.

      Ative a API

    2. Para ter as permissões necessárias para configurar um tópico e uma assinatura do Pub/Sub, peça ao administrador para conceder a você Papel do IAM Editor do Pub/Sub (roles/pubsub.editor) em um projeto. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

      Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

  • Os requisitos adicionais variam de acordo com o tipo de assinatura que você decidir configurar. Por exemplo, se você quiser transmitir e analisar em uma tabela do BigQuery, faça o seguinte:
    1. Ative a API BigQuery.

      Ative a API

    2. Para garantir que a conta de serviço do Pub/Sub tenha permissões para transmitir notificações do Pub/Sub para o BigQuery, peça ao administrador para conceder à conta de serviço do Pub/Sub Papel do IAM Editor de dados do BigQuery (roles/bigquery.dataEditor) no projeto do tópico do Pub/Sub.

      Para mais informações sobre como atribuir essa função, consulte Atribua papéis do BigQuery à conta de serviço do Pub/Sub.

    3. Garanta que todos os usuários que você quer que analisem notificações O BigQuery tem as permissões necessárias.

      Para ter as permissões necessárias para consultar as notificações do Pub/Sub no BigQuery, peça ao administrador para conceder a você os seguintes papéis do IAM:

Configurar notificações do Pub/Sub para Batch

O Batch oferece suporte a notificações do Pub/Sub para alterações no job e estados de tarefa, que você pode usar para alertas, observabilidade ou análise.

Configurar notificações do Pub/Sub para um ou mais dados do Batch jobs, conclua as etapas descritas nas seções a seguir:

  1. Crie ou identifique um tópico do Pub/Sub para os jobs do Batch.
  2. Crie pelo menos uma assinatura para receber e usar as notificações do tópico.
  3. Configure jobs para enviar notificações ao tópico.

Depois de configurar as notificações do Pub/Sub para o Batch, é possível configurar cada job para enviar notificações específicas. Você pode receber notificações sempre que os estados do job ou da tarefa mudarem. Você também pode filtrar notificações para estados específicos de jobs ou tarefas. O Pub/Sub não tem enviar notificações para o primeiro estado em que um job ou tarefa entra; Pub/Sub envia notificações apenas quando um job passa de um estado para outro. Para mais informações sobre os atributos que podem ser configurados para o Pub/Sub notificações, consulte Crie e execute um job que envie notificações de status do Pub/Sub.

Criar ou identificar um tópico do Pub/Sub para o Batch

Crie um novo tópico do Pub/Sub ou identificar um tópico atual do Pub/Sub que você quer usar nas notificações em lote.

Conforme explicado posteriormente neste documento, as tarefas não podem enviar notificações para esse tópico do Pub/Sub até que o administrador conceda que permitem isso.

Crie uma assinatura para receber e usar as notificações

Para receber e usar as mensagens publicadas em um tópico do Pub/Sub, você precisa criar pelo menos uma assinatura no tópico.

Por exemplo, uma opção é configurar seu tópico para transmitir seu notificações ao BigQuery. Então, quando você executar jobs que publicar notificações, poderá receber e analisá-las em um Tabela do BigQuery. Para mais informações, consulte Exemplo: receber e usar notificações do Pub/Sub no BigQuery neste documento.

Caso contrário, para saber mais sobre assinaturas e outras opções, consulte Visão geral das assinaturas no na documentação do Pub/Sub.

Configurar jobs para enviar notificações ao tópico

Para configurar jobs que enviam notificações do Pub/Sub ao seu siga as instruções Criar e executar um job que envie notificações de status do Pub/Sub página. Especificamente, faça o seguinte:

  1. Peça para o administrador conceder todas as permissões, caso ainda não tenha feito isso necessárias para que os jobs enviem notificações ao tópico do Pub/Sub. Essas permissões estão listadas Seção Papéis obrigatórios da página.
  2. Criar e executar um job que ative as notificações do Pub/Sub definindo o campo notifications do job.

Exemplo: receber e usar notificações do Pub/Sub no BigQuery

As seções a seguir explicam um exemplo de caso de uso para receber e usar Notificações do Pub/Sub no BigQuery. Ao configurar um que transmite as notificações Pub/Sub do tópico para um tabela do BigQuery, é possível reter o histórico do job e do estado da tarefa e consultar as mudanças.

Configurar uma assinatura que transmite notificações para o BigQuery

Configurar uma assinatura do Pub/Sub que transmite notificações de um para uma tabela do BigQuery fazendo o seguinte:

  1. Caso ainda não tenha feito isso, Crie ou identifique um tópico do Pub/Sub para o Batch.

  2. Se você ainda não tiver uma, Crie um conjunto de dados do BigQuery.

  3. Crie uma tabela do BigQuery pela seguinte definição 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"
      }
    ]
    
  4. Crie uma assinatura do Pub/Sub que seja transmitida para o BigQuery e especifique as seguintes opções:

    • Tópico: selecione o tópico do Pub/Sub para o Batch.
    • Projeto: selecione o projeto que contém a tabela do BigQuery.
    • Conjunto de dados: selecione o conjunto de dados que contém a tabela do BigQuery.
    • Tabela: selecione a tabela que você criou na etapa anterior.
    • Selecione Usar esquema de tópicos.
    • Selecione Gravar metadados.

Agora, sempre que uma notificação do Pub/Sub for enviada a esse tópico, O Pub/Sub faz o streaming dessa notificação para a tabela do BigQuery. Depois de configurar os jobs para enviar notificações do Pub/Sub, é possível analisar notificações no BigQuery.

Analisar notificações no BigQuery

É possível analisar notificações no BigQuery depois de configurar assinatura de uma tabela do BigQuery para seu tópico e executar jobs que enviar notificações para seu tópico. Para analisar as notificações no BigQuery, execute uma consulta na coluna attributes da tabela do BigQuery. Os atributos que é possível consultar dependendo se você configurou notificações para tarefas ou jobs.

É possível consultar os seguintes atributos das notificações de tarefas:

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

É possível consultar os seguintes atributos das notificações de jobs:

  • JobUID
  • JobName
  • NewJobState
  • Region
  • Type

Por exemplo, a consulta a seguir mostra o JobUID associado a cada notificação:

select attributes.JobUID from `example-table`

A seguir