Panoramica delle trasformazioni di singoli messaggi (SMT)

La maggior parte delle pipeline di dati in streaming richiede trasformazioni dei dati. Alcuni utenti preferiscono trasformare i dati dopo che raggiungono la destinazione in una pipeline ELT (estrazione, caricamento e trasformazione), mentre altri scelgono di trasformarli prima dell'importazione in una pipeline ETL (estrazione, trasformazione e caricamento). Tradizionalmente, questa architettura richiedeva pipeline complesse con strumenti come Dataflow o Apache Flink per eseguire trasformazioni dei dati.

Pub/Sub offre Single Message Transform (SMT) per semplificare le trasformazioni dei dati per le pipeline di streaming. Gli SMT consentono di apportare modifiche leggere ai dati e agli attributi dei messaggi direttamente in Pub/Sub. Gli SMT eliminano la necessità di ulteriori passaggi di elaborazione dei dati o di prodotti di trasformazione dei dati separati.

Casi d'uso degli SMT

Valuta la possibilità di progettare un negozio online che voglia offrire ai clienti consigli personalizzati sui prodotti mentre navigano sul sito web. A tal fine, puoi utilizzare Pub/Sub per raccogliere dati in tempo reale sull'attività dei clienti sul sito. Sono inclusi i dati sui prodotti visualizzati, sui prodotti aggiunti al carrello e sulle valutazioni assegnate ai prodotti.

Tuttavia, questi dati non elaborati spesso richiedono alcuni aggiustamenti prima di poter essere utilizzati per generare consigli. Ad esempio, i dati non elaborati potrebbero contenere dettagli estranei non pertinenti per il tuo caso d'uso. Esempi di questi dettagli sono il tipo di browser del cliente o l'ora in cui ha visitato il sito. Inoltre, i dati potrebbero non essere nel formato richiesto per il sistema di consigli. Ad esempio, i timestamp potrebbero essere in formati diversi o gli ID prodotto potrebbero dover essere convertiti in un tipo diverso.

Puoi utilizzare gli SMT Pub/Sub per eseguire trasformazioni dei dati come le seguenti:

  • Rimuovi le informazioni che consentono l'identificazione personale (PII), come nomi e cognomi e indirizzi, per proteggere la privacy dei clienti.

  • Mantieni solo gli eventi pertinenti per i consigli, come le visualizzazioni e gli acquisti di prodotti, ed elimina gli altri, come le modifiche al profilo del cliente.

  • Assicurati che tutti i timestamp, i valori in valuta e gli ID prodotto rispettino un formato e un tipo coerenti e compatibili con il sistema di consigli.

  • Genera nuovi campi di dati dai dati non elaborati, ad esempio il valore totale del carrello degli acquisti o il tempo di permanenza sulla pagina del prodotto.

In sintesi, gli SMT consentono un'ampia gamma di casi d'uso, tra cui:

  • Mascheramento e oscuramento dei dati: proteggi i dati sensibili mascherando o oscurando campi come numeri di carte di credito o PII, agevolando la conformità alle normative sulla privacy dei dati.

  • Conversione del formato dei dati: trasforma i dati tra formati diversi per garantire la compatibilità con i sistemi a valle.

  • Filtro dei messaggi: elabora solo i messaggi pertinenti escludendo quelli indesiderati in base ai contenuti o agli attributi. Le SMT consentono condizioni di filtro più complesse rispetto ai filtri integrati di Pub/Sub.

  • Trasformazioni di dati semplici: esegui attività di manipolazione di dati di base, come la manipolazione di stringhe, la formattazione di date o operazioni matematiche.

Flusso di messaggi di esempio per gli SMT

L'immagine mostra un esempio di sistema Pub/Sub con SMT applicati sia a livello di argomento sia a livello di abbonamento.

Figura che mostra in che modo i messaggi sono interessati dagli SMT di argomento e di abbonamento.
Figura 1 Come i messaggi vengono trasformati con gli SMT.

La procedura seguente mostra come i messaggi fluiscono nel sistema Pub/Sub:

  1. Le applicazioni publisher Publisher 1 e Publisher 2 pubblicano rispettivamente i messaggi A e B nell'argomento Pub/Sub.

  2. Gli SMT dell'argomento trasformano i messaggi A e B in messaggi A' e B', rispettivamente.

  3. Se allo schema è associato uno schema, i messaggi trasformati A' e B' vengono convalidati in base allo schema. Se, ad esempio, A' non corrisponde allo schema, la pubblicazione del messaggio A non va a buon fine e viene visualizzato un errore.

  4. I messaggi trasformati A' e B' vengono scritti nello spazio di archiviazione Pub/Sub.

  5. Pub/Sub invia i messaggi A' e B' a tutte le sottoscrizioni collegate, ovvero Abbonamento 1 e Abbonamento 2 come mostrato nell'immagine.

  6. Se per l'Abbonamento 1 è configurato un filtro, i messaggi A' e B' vengono valutati in base al filtro. Solo i messaggi corrispondenti al filtro procedono al passaggio successivo. Gli altri messaggi vengono riconosciuti automaticamente da Pub/Sub.

  7. Se per l'Abbonamento 2 è configurato un filtro, i messaggi A' e B' vengono valutati in base al filtro. Solo i messaggi corrispondenti al filtro procedono al passaggio successivo. Gli altri messaggi vengono riconosciuti automaticamente da Pub/Sub.

  8. Gli SMT dell'abbonamento 1 trasformano i messaggi A' e B'. A' diventa A'' e B' diventa B''.

  9. Gli SMT dell'abbonamento 2 trasformano i messaggi A' e B'. A' rimane A' e B' viene escluso.

  10. Se l'abbonamento 1 è un abbonamento push con l'annullamento del wrapping del payload attivo, i messaggi A e B vengono sballati. Se Abbonamento 2 è un abbonamento push con l'annullamento del wrapping del payload attivo, A' viene sballato.

  11. L'abbonato 1 riceve il messaggio B'', l'abbonato 2 riceve il messaggio A'' e l'abbonato 3 riceve il messaggio A'.

  12. Gli abbonati confermano i messaggi ricevuti.

  13. Pub/Sub elimina i messaggi confermati dallo spazio di archiviazione.

Informazioni importanti sugli SMT

  • Le SMT sono integrate nell'API Pub/Sub, il che ti consente di gestirle come parte delle configurazioni degli argomenti o delle iscrizioni.

  • In un argomento o in una sottoscrizione è possibile attivare fino a 5 SMT.

  • Le SMT operano su un singolo messaggio Pub/Sub. Non possono aggregare più messaggi Pub/Sub.

  • Quando viene eseguito un SMT, viene preso in input il messaggio Pub/Sub, inclusi i relativi dati e attributi. L'output è un messaggio Pub/Sub trasformato, con modifiche ai dati o agli attributi.

  • Se hai definito un SMT su un abbonamento per il quale è attivato l'ordinamento e l'esecuzione dell'SMT su un messaggio genera un errore, i messaggi successivi per la stessa chiave di ordinamento non vengono recapitati all'abbonato. Configura un argomento messaggi non recapitabili nell'abbonamento per rimuovere un messaggio che genera un errore dalla coda dei messaggi in modo che i messaggi successivi possano essere recapitati.

Tipi di SMT

Passaggi successivi