Este documento explica como pode monitorizar as alterações de estado de tarefas e trabalhos configurando notificações do Pub/Sub. Pode usar as notificações para vários exemplos de utilização. Por exemplo, este documento explica como fazer stream das notificações para uma tabela do BigQuery, que pode usar para analisar os dados. Para saber mais sobre os exemplos de utilização das notificações do Pub/Sub, consulte o artigo Escolha um tipo de subscrição na documentação do Pub/Sub.
Em alternativa, se quiser exportar todas as informações sobre uma tarefa para o BigQuery, consulte Exportar informações da tarefa em vez disso.
Antes de começar
- Se nunca usou o Batch, reveja o artigo Comece a usar o Batch e ative o Batch concluindo os pré-requisitos para projetos e utilizadores.
- Se quiser configurar notificações do Pub/Sub para os seus trabalhos em lote, faça o seguinte:
-
Enable the Pub/Sub API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Para obter as autorizações de que precisa para configurar um tópico e uma subscrição do Pub/Sub, peça ao seu administrador que lhe conceda a função IAM Editor do Pub/Sub (
roles/pubsub.editor
) num projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
-
- Os requisitos adicionais variam consoante o tipo de subscrição que
decide configurar. Por exemplo, se quiser fazer stream e analisar notificações para uma tabela do BigQuery, tem de fazer o seguinte:
-
Enable the BigQuery API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Para garantir que a conta de serviço do Pub/Sub tem as autorizações necessárias para transmitir notificações do Pub/Sub para o BigQuery, peça ao seu administrador para conceder à conta de serviço do Pub/Sub a função de IAM Editor de dados do BigQuery (
roles/bigquery.dataEditor
) no projeto do tópico do Pub/Sub.Para mais informações sobre a atribuição desta função, consulte o artigo Atribua funções do BigQuery à conta de serviço do Pub/Sub.
- Certifique-se de que todos os utilizadores que quer que analisem as notificações no BigQuery têm as autorizações necessárias.
Para receber as autorizações de que precisa para consultar notificações do Pub/Sub no BigQuery, peça ao seu administrador para lhe conceder as seguintes funções de IAM:
-
Utilizador da tarefa do BigQuery (
roles/bigquery.jobUser
) no projeto da tabela do BigQuery -
Visualizador de dados do BigQuery (
roles/bigquery.dataViewer
) na tabela do BigQuery
-
Utilizador da tarefa do BigQuery (
-
Configure notificações do Pub/Sub para o Batch
O Batch suporta notificações do Pub/Sub para alterações aos estados de tarefas e trabalhos, que pode usar para alertas, observabilidade ou análise.
Para configurar notificações do Pub/Sub para uma ou mais tarefas em lote, conclua os passos descritos nas secções seguintes:
- Crie ou identifique um tópico do Pub/Sub para as suas tarefas em lote.
- Crie, pelo menos, uma subscrição para o seu tópico para receber e usar as respetivas notificações.
- Configure tarefas para enviar notificações para o seu tópico.
Depois de configurar as notificações do Pub/Sub para o Batch, pode configurar opcionalmente cada tarefa para enviar notificações específicas. Pode receber notificações sempre que o estado de uma tarefa ou de um trabalho for alterado, ou pode filtrar as notificações por estados específicos de tarefas ou trabalhos. Em particular, o Pub/Sub não envia notificações para o primeiro estado em que uma tarefa ou um trabalho entra. O Pub/Sub só envia notificações quando um trabalho passa de um estado para outro.
Para mais informações sobre os atributos que pode configurar para as notificações do Pub/Sub, consulte o artigo Crie e execute uma tarefa que envie notificações de estado do Pub/Sub.
Crie ou identifique um tópico Pub/Sub para o Batch
Crie um novo tópico do Pub/Sub ou identifique um tópico do Pub/Sub existente que quer usar para notificações em lote.
Conforme explicado mais adiante neste documento, as tarefas não podem enviar notificações para este tópico do Pub/Sub até que o seu administrador conceda autorizações adicionais que o permitam.
Crie uma subscrição para receber e usar as notificações
Para receber e usar mensagens publicadas num tópico Pub/Sub, tem de criar, pelo menos, uma subscrição desse tópico.
Por exemplo, uma opção é configurar o tópico para transmitir as respetivas notificações para o BigQuery. Em seguida, quando estiver a executar trabalhos que publicam notificações, pode receber e analisar as notificações numa tabela do BigQuery. Para mais informações, consulte o Exemplo: receba e use notificações do Pub/Sub no BigQuery neste documento.
Caso contrário, para saber mais sobre subscrições e outras opções de subscrição, consulte o Resumo das subscrições na documentação do Pub/Sub.
Configure trabalhos para enviar notificações para o seu tópico
Para configurar tarefas que enviam notificações do Pub/Sub para o seu tópico, siga as instruções na página Crie e execute uma tarefa que envia notificações de estado do Pub/Sub. Especificamente, faça o seguinte:
- Se ainda não o fez, peça ao administrador para conceder todas as autorizações necessárias para que as tarefas enviem notificações para o seu tópico do Pub/Sub. Estas autorizações estão listadas na secção Funções necessárias dessa página.
- Crie e execute uma tarefa que ative as notificações do Pub/Sub
definindo o campo
notifications
da tarefa.
Exemplo: receba e use notificações do Pub/Sub no BigQuery
As secções seguintes explicam um exemplo de utilização para receber e usar notificações do Pub/Sub no BigQuery. Ao configurar uma subscrição que transmite as notificações do Pub/Sub do seu tópico para uma tabela do BigQuery, pode reter o histórico das alterações de estado de tarefas e trabalhos, e consultar essas alterações.
Configure uma subscrição que transmita notificações para o BigQuery
Configure uma subscrição do Pub/Sub que transmita notificações de um tópico para uma tabela do BigQuery fazendo o seguinte:
Se ainda não o fez, crie ou identifique um tópico do Pub/Sub para o Batch.
Se ainda não tiver um, crie um conjunto de dados do BigQuery.
Crie uma tabela do BigQuery com a 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 subscrição do Pub/Sub que faça streaming para o BigQuery e especifique as seguintes opções:
- Tópico: selecione o tópico do Pub/Sub para o processamento em lote.
- Projeto: selecione o projeto que contém a sua tabela do BigQuery.
- Conjunto de dados: selecione o conjunto de dados que contém a sua tabela do BigQuery.
- Tabela: selecione a tabela que criou no passo anterior.
- Selecione Usar esquema de tópicos.
- Selecione Escrever metadados.
Agora, sempre que uma notificação do Pub/Sub for enviada para esse tópico, o Pub/Sub transmite essa notificação para a tabela do BigQuery. Depois de configurar tarefas para enviar notificações do Pub/Sub, pode analisar as notificações no BigQuery.
Analise as notificações no BigQuery
Pode analisar as notificações no BigQuery depois de configurar uma subscrição de uma tabela do BigQuery para o seu tópico e executar tarefas que enviam notificações para o seu tópico. Para analisar as notificações no BigQuery, execute uma consulta na coluna attributes
da tabela do BigQuery. Os atributos que pode consultar dependem de ter configurado notificações para tarefas ou trabalhos.
Pode consultar os seguintes atributos das notificações de tarefas:
JobUID
NewTaskState
Region
TaskName
TaskUID
Type
Pode consultar os seguintes atributos das notificações de tarefas:
JobUID
JobName
NewJobState
Region
Type
Por exemplo, a seguinte consulta mostra o JobUID
associado a cada
notificação:
select attributes.JobUID from `example-table`
O que se segue?
- Saiba como criar e executar uma tarefa que envia notificações de estado do Pub/Sub.
- Saiba mais sobre as subscrições do Pub/Sub.
- Saiba mais acerca da estatística do BigQuery.