La plupart des pipelines de données de streaming nécessitent des transformations de données. Certains utilisateurs préfèrent transformer les données après qu'elles ont atteint leur destination dans un pipeline d'extraction, de chargement et de transformation (ELT), tandis que d'autres choisissent de transformer les données 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 transformations de message unique 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 en entrée, y compris les données et les attributs du message. Le résultat est un message Pub/Sub transformé, avec des modifications apportées aux données ou aux attributs. Les SMT sont intégrés à l'API Pub/Sub. Vous pouvez donc les gérer dans les configurations de vos sujets ou abonnements.
Cas d'utilisation des SMT
Imaginez que vous devez concevoir une boutique en ligne qui souhaite proposer des recommandations de produits personnalisées aux clients 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 les 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 transformations de message unique 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, pour 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, comme les modifications du profil client.
Assurez-vous que tous les codes temporels, les valeurs monétaires et les ID de produit respectent un format et un type compatibles avec le système de recommandation.
Générez de nouveaux champs de données à partir de données brutes, comme la valeur totale du panier ou le temps passé sur la page produit.
Ajoutez des inférences à partir de modèles Gemini Enterprise Agent Platform 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 censure des données : protégez les données sensibles en masquant ou en censurant des champs tels que les numéros de carte de crédit ou les informations permettant d'identifier personnellement l'utilisateur. Cela vous aidera à respecter les réglementations sur la confidentialité des données.
Conversion du format de 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 les opérations mathématiques.
Inférences d'IA : intégrez facilement des modèles d'IA dans vos pipelines Pub/Sub à l'aide du SMT Inférence d'IA.
Types de transformations de message unique
Pub/Sub est compatible avec les transformations de message unique suivantes :
- Inférence IA : obtient des inférences sur les messages Pub/Sub à partir d'un modèle Agent Platform.
- Fonctions définies par l'utilisateur : appelle une fonction JavaScript définie par l'utilisateur (UDF) 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és aux niveaux du thème et de l'abonnement.
La procédure suivante montre comment les messages circulent dans le système Pub/Sub :
Les applications d'éditeur Éditeur 1 et Éditeur 2 publient respectivement les messages A et B dans le sujet Pub/Sub.
Les SMT du sujet transforment les messages A et B en messages A' et B', respectivement.
Si un schéma est associé au sujet, les messages transformés A' et B' sont validés par rapport au schéma. Par exemple, si A' ne correspond pas au schéma, la publication du message A échoue et une erreur s'affiche.
Les messages transformés A' et B' sont écrits dans le stockage Pub/Sub.
Pub/Sub distribue les messages A' et B' à tous les abonnements associés, à savoir Abonnement 1 et Abonnement 2, comme indiqué sur l'image.
Si un filtre est configuré pour l'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.
Si un filtre est configuré pour l'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.
Les SMT de l'abonnement 1 transforment les messages A' et B'. A' devient A'' et B' devient B''.
Les SMT de l'abonnement 2 transforment les messages A' et B'. A' reste A' et B' est filtré.
Si Abonnement 1 est un abonnement push avec le déballage de la charge utile activé, les messages A'' et B'' sont déballés. Si Subscription 2 est un abonnement push avec désencapsulation de la charge utile activée, A' est désencapsulé.
L'abonné 1 reçoit le message B'', l'abonné 2 reçoit le message A'' et l'abonné 3 reçoit le message A'.
Les abonnés accusent réception des messages reçus.
Pub/Sub supprime les messages confirmés du stockage.
Limites
Vous pouvez activer jusqu'à cinq SMT pour un sujet ou un abonnement.
Les SMT fonctionnent sur un seul message Pub/Sub. Ils ne peuvent pas agréger plusieurs messages Pub/Sub.