Présentation des transformations de message unique

La plupart des pipelines de données en flux continu nécessitent des transformations de données. Certains utilisateurs préfèrent transformer les données une fois qu'elles ont atteint leur destination dans un pipeline d'extraction, de chargement et de transformation (ELT), tandis que d'autres choisissent de les transformer avant leur ingestion dans un pipeline d'extraction, de transformation et de chargement (ETL). Traditionnellement, cette architecture nécessitait des pipelines complexes avec des outils tels que Dataflow ou Apache Flink pour effectuer des transformations de données.

Pub/Sub propose des transformations de message unique (SMT) pour simplifier les transformations de données dans les pipelines de flux. Les SMT permettent de modifier légèrement les données et les attributs des messages directement dans Pub/Sub. Les SMT éliminent le besoin d'étapes de traitement de données supplémentaires ou de produits de transformation de données distincts.

Lorsqu'une SMT est exécutée, elle prend le message Pub/Sub comme entrée, y compris les données et les attributs du message. La sortie est un message Pub/Sub transformé, avec des modifications apportées aux données ou aux attributs. Les SMT sont intégrées à l'API Pub/Sub. Vous pouvez donc les gérer dans le cadre de la configuration de votre sujet ou de votre abonnement.

Cas d'utilisation des SMT

Imaginez que vous concevez une boutique en ligne qui souhaite proposer à ses clients des recommandations de produits personnalisées lorsqu'ils parcourent le site Web. Pour ce faire, vous pouvez utiliser Pub/Sub afin de collecter des données en temps réel sur l'activité des clients sur le site. Cela inclut des données sur les produits consultés, les produits ajoutés au panier et les notes attribuées aux produits.

Toutefois, ces données brutes nécessitent souvent quelques ajustements avant de pouvoir être utilisées pour générer des recommandations. Par exemple, les données brutes peuvent contenir des détails superflus qui ne sont pas pertinents pour votre cas d'utilisation. Par exemple, le type de navigateur du client ou l'heure à laquelle il a visité le site. Il se peut également que les données ne soient pas au format requis pour le système de recommandation. Par exemple, les codes temporels peuvent être dans des formats différents, ou les ID de produit peuvent devoir être convertis dans un autre type.

Vous pouvez utiliser les SMT Pub/Sub pour effectuer des transformations de données telles que les suivantes :

  • Supprimez les informations permettant d'identifier personnellement l'utilisateur, telles que les noms complets et les adresses, afin de protéger la confidentialité des clients.

  • Ne conservez que les événements pertinents pour les recommandations, tels que les vues et les achats de produits, et supprimez les autres, tels que les modifications de profil client.

  • Assurez-vous que tous les codes temporels, les valeurs monétaires et les ID de produit respectent un format et un type cohérents compatibles avec le système de recommandation.

  • Générez de nouveaux champs de données à partir de données brutes, telles que la valeur totale du panier ou le temps passé sur la page produit.

  • Ajoutez des inférences à partir de modèles Vertex AI aux données d'événement, telles que des classifications, des prédictions, des sentiments ou des embeddings.

En résumé, les SMT permettent un large éventail de cas d'utilisation, y compris les suivants :

  • Masquage et suppression des données : protégez les données sensibles en masquant ou en supprimant des champs tels que les numéros de carte de crédit ou les informations permettant d'identifier personnellement l'utilisateur, ce qui facilite la conformité aux réglementations sur la confidentialité des données.

  • Conversion du format des données : transformez les données entre différents formats pour assurer la compatibilité avec les systèmes en aval.

  • Filtrage des messages : ne traitez que les messages pertinents en filtrant les messages indésirables en fonction de leur contenu ou de leurs attributs. Les SMT permettent des conditions de filtrage plus complexes que les filtres intégrés de Pub/Sub.

  • Transformations de données simples : effectuez des tâches de manipulation de données de base, telles que la manipulation de chaînes, la mise en forme de dates ou des opérations mathématiques.

  • Inférences d'IA : intégrez de manière transparente des modèles d'IA dans vos pipelines Pub/Sub à l'aide de la SMT d'inférence d'IA.

Types de SMT

Pub/Sub est compatible avec les SMT suivantes :

  • Inférence d'IA : obtient des inférences sur les messages Pub/Sub à partir d'un modèle Vertex AI.
  • Fonctions définies par l'utilisateur : appelle une fonction définie par l'utilisateur (UDF) JavaScript pour effectuer des transformations personnalisées sur les messages Pub/Sub.

Exemple de flux de messages pour les SMT

L'image montre un exemple de système Pub/Sub avec des SMT appliquées aux niveaux du sujet et de l'abonnement.

Figure showing how
  messages are impacted with topic SMT and subscription SMT.
Figure 1 : Transformation des messages avec les SMT

La procédure suivante montre comment les messages circulent dans le système Pub/Sub :

  1. Les applications d'éditeur Éditeur 1 et Éditeur 2 publient respectivement les messages A et B dans le sujet Pub/Sub.

  2. Les SMT du sujet transforment les messages A et B en messages A' et B', respectivement.

  3. Si un schéma est associé au sujet, les messages transformés A' et B' sont validés par rapport au schéma. Si, par exemple, A' ne correspond pas au schéma, la publication du message A échoue avec une erreur.

  4. Les messages transformés A' et B' sont écrits dans l'espace de stockage Pub/Sub.

  5. Pub/Sub distribue les messages A' et B' à tous les abonnements associés , qui sont Abonnement 1 et Abonnement 2 , comme indiqué dans l'image.

  6. Si un filtre est configuré pour Abonnement 1, les messages A' et B' sont évalués par rapport au filtre. Seuls les messages correspondant au filtre passent à l'étape suivante. Les autres messages sont automatiquement reconnus par Pub/Sub.

  7. Si un filtre est configuré pour Abonnement 2, les messages A' et B' sont évalués par rapport au filtre. Seuls les messages correspondant au filtre passent à l'étape suivante. Les autres messages sont automatiquement reconnus par Pub/Sub.

  8. Les SMT d'Abonnement 1 transforment les messages A' et B'. A' devient A'' et B' devient B''.

  9. Les SMT d'Abonnement 2 transforment les messages A' et B'. A' reste A' et B' est filtré.

  10. Si Abonnement 1 est un abonnement push avec la désencapsulation de la charge utile activée, les messages A'' et B'' sont désencapsulés. Si Abonnement 2 est un abonnement push avec la désencapsulation de la charge utile activée, A' est désencapsulé.

  11. Abonné 1 reçoit le message B'', Abonné 2 reçoit le message A'' et Abonné 3 reçoit le message A'.

  12. Les abonnés accusent réception des messages reçus.

  13. Pub/Sub supprime les messages confirmés de l'espace de stockage.

Limites

  • Vous pouvez activer jusqu'à cinq SMT sur un sujet ou un abonnement.

  • Les SMT fonctionnent sur un seul message Pub/Sub. Elles ne peuvent pas agréger plusieurs messages Pub/Sub.

Étape suivante