Vista geral das transformações de mensagens únicas (SMTs)

A maioria dos data pipelines de streaming requer transformações de dados. Alguns utilizadores preferem transformar os dados depois de chegarem ao destino num pipeline de extração, carregamento e transformação (ELT), enquanto outros optam por transformar os dados antes da ingestão num pipeline de extração, transformação e carregamento (ETL). Tradicionalmente, esta arquitetura exigia pipelines complexos com ferramentas como o Dataflow ou o Apache Flink para realizar transformações de dados.

O Pub/Sub oferece transformações de mensagens únicas (SMTs) para simplificar as transformações de dados para pipelines de streaming. As SMTs permitem modificações simples aos dados e atributos das mensagens diretamente no Pub/Sub. Os SMTs eliminam a necessidade de passos de processamento de dados adicionais ou produtos de transformação de dados separados.

Exemplos de utilização de SMTs

Considere criar uma loja online que queira dar aos clientes recomendações de produtos personalizadas enquanto navegam no Website. Para tal, pode usar o Pub/Sub para recolher dados em tempo real sobre a atividade dos clientes no site. Isto inclui dados sobre os produtos visualizados, os produtos adicionados ao carrinho e as classificações atribuídas aos produtos.

No entanto, estes dados não processados precisam, muitas vezes, de alguns ajustes antes de poderem ser usados para gerar recomendações. Por exemplo, os dados não processados podem conter detalhes extrínsecos que são irrelevantes para o seu exemplo de utilização. Alguns exemplos destes detalhes são o tipo de navegador do cliente ou a hora em que visitou o site. Os dados também podem não estar no formato necessário para o sistema de recomendações. Por exemplo, as datas/horas podem estar em formatos diferentes ou os IDs dos produtos podem ter de ser convertidos num tipo diferente.

Pode usar SMTs do Pub/Sub para fazer transformações de dados, como as seguintes:

  • Remova informações de identificação pessoal (PII), como nomes completos e endereços, para proteger a privacidade do cliente.

  • Retenha apenas eventos relevantes para recomendações, como visualizações de produtos e compras, e rejeite outros, como alterações ao perfil do cliente.

  • Certifique-se de que todas as datas/horas, valores de moeda e IDs de produtos cumprem um formato e um tipo consistentes compatíveis com o sistema de recomendações.

  • Gerar novos campos de dados a partir de dados não processados, como o valor total do carrinho de compras ou o tempo de permanência na página do produto.

Em resumo, as SMTs permitem uma vasta gama de exemplos de utilização, incluindo o seguinte:

  • Anulação e ocultação de dados: proteja dados sensíveis anulando ou ocultando campos como números de cartões de crédito ou PII, o que ajuda na conformidade com os regulamentos de privacidade dos dados.

  • Conversão do formato de dados: transforme dados entre diferentes formatos para garantir a compatibilidade com sistemas posteriores.

  • Filtragem de mensagens: processe apenas mensagens relevantes filtrando mensagens indesejadas com base no conteúdo ou nos atributos. As SMTs permitem condições de filtragem mais complexas do que os filtros incorporados do Pub/Sub.

  • Transformações de dados simples: execute tarefas básicas de manipulação de dados, como manipulação de strings, formatação de datas ou operações matemáticas.

Exemplo de fluxo de mensagens para SMTs

A imagem mostra um exemplo de um sistema Pub/Sub com SMTs aplicadas aos níveis do tópico e da subscrição.

Figura que mostra como as mensagens são afetadas com o SMT de tópicos e o SMT de subscrições.
Figura 1 Como as mensagens são transformadas com os SMTs.

O procedimento seguinte mostra como as mensagens fluem no sistema Pub/Sub:

  1. As aplicações de publicador Publisher 1 e Publisher 2 publicam mensagens A e B, respetivamente, no tópico do Pub/Sub.

  2. Os SMTs do tópico transformam as mensagens A e B nas mensagens A' e B', respetivamente.

  3. Se um esquema estiver anexado ao tópico, as mensagens transformadas A' e B' são validadas de acordo com o esquema. Por exemplo, se A' não corresponder ao esquema, a publicação da mensagem A falha com um erro.

  4. As mensagens transformadas A' e B' são escritas no armazenamento do Pub/Sub.

  5. O Pub/Sub envia as mensagens A' e B' para todas as subscrições anexadas, que são Subscrição 1 e Subscrição 2, conforme mostrado na imagem.

  6. Se a Subscrição 1 tiver um filtro configurado, as mensagens A' e B' são avaliadas em função do filtro. Apenas as mensagens que correspondem ao filtro avançam para o passo seguinte. Outras mensagens são automaticamente confirmadas pelo Pub/Sub.

  7. Se Subscrição 2 tiver um filtro configurado, as mensagens A' e B' são avaliadas em função do filtro. Apenas as mensagens que correspondem ao filtro avançam para o passo seguinte. Outras mensagens são automaticamente confirmadas pelo Pub/Sub.

  8. Os SMTs da subscrição 1 transformam as mensagens A e B. A' torna-se A'' e B' torna-se B''.

  9. Os SMTs da subscrição 2 transformam as mensagens A e B. A' permanece como A' e B' é filtrado.

  10. Se a Subscrição 1 for uma subscrição push com a anulação da união da carga útil ativada, as mensagens A'' e B'' são anuladas. Se a Subscrição 2 for uma subscrição push com a anulação da união da carga útil ativada, A' é anulada.

  11. O subscritor 1 recebe a mensagem B'', o subscritor 2 recebe a mensagem A'' e o subscritor 3 recebe a mensagem A'.

  12. Os subscritores confirmam as mensagens recebidas.

  13. O Pub/Sub elimina as mensagens confirmadas do armazenamento.

Informações importantes sobre os SMTs

  • As SMTs estão integradas na API Pub/Sub, o que lhe permite geri-las como parte das configurações do tópico ou da subscrição.

  • É possível ativar até 5 SMTs num tópico ou numa subscrição.

  • Os SMTs operam numa única mensagem do Pub/Sub. Não podem agregar várias mensagens do Pub/Sub.

  • Quando é executada uma SMT, esta recebe como entrada a mensagem do Pub/Sub, incluindo os respetivos dados e atributos. O resultado é uma mensagem do Pub/Sub transformada, com modificações nos respetivos dados ou atributos.

  • Se tiver um SMT definido numa subscrição com a ordenação ativada e a execução do SMT em qualquer mensagem gerar um erro, as mensagens subsequentes para a mesma chave de ordenação não são entregues ao subscritor. Configure um tópico de mensagens não entregues na subscrição para remover uma mensagem que gera um erro do backlog de mensagens para que as mensagens subsequentes possam ser entregues.

Tipos de SMTs

O que se segue?