Single Message Transforms (SMTs) – Übersicht

Die meisten Streaming-Datenpipelines erfordern Datentransformationen. Einige Nutzer bevorzugen es, Daten zu transformieren, nachdem sie ihr Ziel in einer ELT-Pipeline (Extract, Load, Transform) erreicht haben. Andere transformieren Daten lieber vor der Aufnahme in einer ETL-Pipeline (Extract, Transform, Load). Traditionell erforderte diese Architektur komplexe Pipelines mit Tools wie Dataflow oder Apache Flink, um Datentransformationen durchzuführen.

Pub/Sub bietet Single Message Transforms (SMTs) zur Vereinfachung von Datentransformationen für Streamingpipelines. SMTs ermöglichen direkt in Pub/Sub einfache Änderungen an Nachrichtendaten und -attributen. SMTs machen zusätzliche Datenverarbeitungsschritte oder separate Datentransformationsprodukte überflüssig.

Wenn ein SMT ausgeführt wird, wird die Pub/Sub-Nachricht als Eingabe verwendet, einschließlich der Nachrichtendaten und -attribute. Die Ausgabe ist eine transformierte Pub/Sub-Nachricht mit Änderungen an den Daten oder Attributen. SMTs sind in die Pub/Sub API eingebunden, sodass Sie sie als Teil Ihrer Themen- oder Abo-Konfigurationen verwalten können.

Anwendungsfälle für SMTs

Angenommen, Sie möchten einen Onlineshop entwickeln, der Kunden personalisierte Produktempfehlungen gibt, während sie auf der Website surfen. Dazu können Sie mit Pub/Sub Echtzeitdaten zu Kundenaktivitäten auf der Website erheben. Dazu gehören Daten zu den angesehenen Produkten, den Produkten, die dem Warenkorb hinzugefügt wurden, und den Bewertungen, die für Produkte abgegeben wurden.

Diese Rohdaten müssen jedoch oft angepasst werden, bevor sie zur Generierung von Empfehlungen verwendet werden können. Die Rohdaten können beispielsweise irrelevante Details für Ihren Anwendungsfall enthalten. Beispiele für solche Details sind der Browsertyp des Kunden oder die Uhrzeit, zu der er die Website besucht hat. Die Daten sind möglicherweise auch nicht im erforderlichen Format für das Empfehlungssystem. Zeitstempel können beispielsweise in verschiedenen Formaten vorliegen oder Produkt-IDs müssen in einen anderen Typ konvertiert werden.

Mit Pub/Sub-SMTs können Sie Datentransformationen wie die folgenden vornehmen:

  • Entfernen Sie personenbezogene Daten wie vollständige Namen und Adressen, um die Privatsphäre der Kunden zu schützen.

  • Behalten Sie nur empfehlungsrelevante Ereignisse wie Produktansichten und Käufe bei und verwerfen Sie andere, z. B. Änderungen am Kundenprofil.

  • Achten Sie darauf, dass alle Zeitstempel, Währungswerte und Produkt-IDs ein einheitliches Format und einen einheitlichen Typ haben, die mit dem Empfehlungssystem kompatibel sind.

  • Generieren Sie neue Datenfelder aus Rohdaten, z. B. den Gesamtwert des Einkaufswagens oder die Verweildauer auf der Produktseite.

  • Fügen Sie Ereignisdaten Inferenzen aus Gemini Enterprise Agent Platform-Modellen hinzu, z. B. Klassifizierungen, Vorhersagen, Stimmungen oder Einbettungen.

Zusammenfassend lässt sich sagen, dass SMTs eine Vielzahl von Anwendungsfällen ermöglichen, darunter:

  • Datenmaskierung und Unkenntlichmachung: Schützen Sie sensible Daten, indem Sie Felder wie Kreditkartennummern oder personenbezogene Daten maskieren oder unkenntlich machen. So können Sie die Datenschutzbestimmungen einhalten.

  • Datenformatkonvertierung: Transformieren Sie Daten zwischen verschiedenen Formaten, um die Kompatibilität mit nachgeschalteten Systemen zu gewährleisten.

  • Nachrichtenfilterung: Verarbeiten Sie nur relevante Nachrichten, indem Sie unerwünschte Nachrichten anhand von Inhalt oder Attributen herausfiltern. SMTs ermöglichen komplexere Filterbedingungen als die integrierten Filter von Pub/Sub.

  • Einfache Datentransformationen: Führen Sie grundlegende Datenbearbeitungsaufgaben aus, z. B. Stringbearbeitung, Datumsformatierung oder mathematische Operationen.

  • KI-Inferenzen: Binden Sie KI-Modelle nahtlos in Ihre Pub/Sub-Pipelines ein, indem Sie das AI Inference SMT verwenden.

Arten von SMTs

Pub/Sub unterstützt die folgenden SMTs:

  • AI Inference: Ruft Inferenzen zu Pub/Sub-Nachrichten aus einem Agent Platform-Modell ab.
  • User Defined Functions: Ruft eine benutzerdefinierte JavaScript-Funktion (UDF) auf, um benutzerdefinierte Transformationen für Pub/Sub-Nachrichten durchzuführen.

Beispiel für den Nachrichtenfluss für SMTs

Die Abbildung zeigt ein Beispiel für ein Pub/Sub-System, in dem SMTs sowohl auf Themen- als auch auf Aboebene angewendet werden.

Abbildung, die zeigt, wie sich die Themen-SMT und die Abo-SMT auf Nachrichten auswirken.
Abbildung 1 So werden Nachrichten mit SMTs transformiert.

Die folgende Anleitung zeigt, wie die Nachrichten im Pub/Sub-System fließen:

  1. Die Publisher-Anwendungen Publisher 1 und Publisher 2 veröffentlichen die Nachrichten A bzw. B im Pub/Sub-Thema.

  2. Die SMTs des Themas transformieren die Nachrichten A und B in die Nachrichten A' und B' bzw.

  3. Wenn dem Thema ein Schema angehängt ist, werden die transformierten Nachrichten A' und B' anhand des Schemas validiert. Wenn A' beispielsweise nicht mit dem Schema übereinstimmt, schlägt die Veröffentlichung der Nachricht A mit einem Fehler fehl.

  4. Die transformierten Nachrichten A' und B' werden in Pub/Sub-Speicher geschrieben.

  5. Pub/Sub sendet die Nachrichten A' und B' an alle angehängten Abos, in der Abbildung Abo 1 und Abo 2.

  6. Wenn für Abo 1 ein Filter konfiguriert ist, werden die Nachrichten A' und B' anhand des Filters ausgewertet. Nur Nachrichten, die dem Filter entsprechen, werden im nächsten Schritt verarbeitet. Andere Nachrichten werden automatisch von Pub/Sub bestätigt.

  7. Wenn für Abo 2 ein Filter konfiguriert ist, werden die Nachrichten A' und B' anhand des Filters ausgewertet. Nur Nachrichten, die dem Filter entsprechen, werden im nächsten Schritt verarbeitet. Andere Nachrichten werden automatisch von Pub/Sub bestätigt.

  8. Die SMTs von Abo 1 transformieren die Nachrichten A' und B'. A' wird zu A'' und B' wird zu B''.

  9. Die SMTs von Abo 2 transformieren die Nachrichten A' und B'. A' bleibt A' und B' wird herausgefiltert.

  10. Wenn Abo 1 ein Push-Abo ist, bei dem das Entpacken der Nutzlast aktiviert ist, werden die Nachrichten A'' und B'' entpackt. Wenn Abo 2 ein Push-Abo ist, bei dem das Entpacken der Nutzlast aktiviert ist, wird A' entpackt.

  11. Abonnent 1 empfängt die Nachricht B'', Abonnent 2 empfängt die Nachricht A'' und Abonnent 3 empfängt die Nachricht A'.

  12. Abonnenten bestätigen die empfangenen Nachrichten.

  13. Pub/Sub löscht die bestätigten Nachrichten aus dem Speicher.

Beschränkungen

  • Für ein Thema oder Abo können bis zu 5 SMTs aktiviert werden.

  • SMTs werden auf eine einzelne Pub/Sub-Nachricht angewendet. Sie können nicht mehrere Pub/Sub-Nachrichten aggregieren.

Nächste Schritte