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.
Como alternativa, se você quiser exportar todas as informações sobre um job para BigQuery, consulte Exportar informações sobre jobs como alternativa.
Antes de começar
- Se você nunca usou o Batch antes, revise Introdução ao Batch e ativar o Batch. pré-requisitos para projetos e usuários.
- Se você quiser configurar notificações do Pub/Sub para
Jobs em lote, faça o seguinte:
-
Enable the Pub/Sub API.
-
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 a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de 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:
-
Enable the BigQuery API.
-
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.
- 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:
-
Usuário de jobs do BigQuery (
roles/bigquery.jobUser
) do projeto da tabela do BigQuery, -
Leitor de dados do BigQuery (
roles/bigquery.dataViewer
) na tabela do BigQuery
-
Usuário de jobs do BigQuery (
-
Configurar notificações do Pub/Sub para o lote
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:
- Crie ou identifique um tópico do Pub/Sub para seus trabalhos em lote.
- Crie pelo menos uma assinatura para receber e usar as notificações do tópico.
- 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 para seu tópico, siga as instruções na página Criar e executar um job que envia notificações de status do Pub/Sub. Especificamente, faça o seguinte:
- 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.
- 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:
Caso ainda não tenha feito isso, Crie ou identifique um tópico do Pub/Sub para o Batch.
Se você ainda não tiver uma, Crie um conjunto de dados do BigQuery.
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" } ]
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 lote.
- 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
- Saiba como criar e executar um job que envia notificações de status do Pub/Sub.
- Saiba mais sobre Assinaturas do Pub/Sub.
- Saiba mais sobre as análises do BigQuery.