Single Message Transforms (SMTs) – Übersicht

Für die meisten Streamingdatenpipelines sind Datentransformationen erforderlich. Einige Nutzer bevorzugen es, Daten zu transformieren, nachdem sie ihr Ziel in einer ELT-Pipeline (Extract, Load, Transform) erreicht haben, während andere sich für die Transformation von Daten vor der Aufnahme in einer ETL-Pipeline (Extract, Transform, Load) entscheiden. Bisher waren für diese Architektur komplexe Pipelines mit Tools wie Dataflow oder Apache Flink erforderlich, 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 erstellen, in dem Kunden beim Surfen auf der Website personalisierte Produktempfehlungen erhalten. Dazu können Sie Pub/Sub verwenden, um Echtzeitdaten zu Kundenaktivitäten auf der Website zu erfassen. 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 unterschiedlichen Formaten vorliegen oder Produkt-IDs müssen in einen anderen Typ konvertiert werden.

Sie können Pub/Sub-SMTs für Datentransformationen wie die folgenden verwenden:

  • Entfernen Sie personenidentifizierbare Informationen wie vollständige Namen und Adressen, um den Datenschutz der Kunden zu schützen.

  • Behalten Sie nur empfehlungsrelevante Ereignisse wie Produktaufrufe 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 haben und mit dem Empfehlungssystem kompatibel sind.

  • Neue Datenfelder aus Rohdaten generieren, z. B. den Gesamtwert des Warenkorbs oder die Verweildauer auf der Produktseite.

  • Fügen Sie Ereignisdaten Inferenzdaten aus Vertex AI-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 ‐entfernung: Schützen Sie sensible Daten, indem Sie Felder wie Kreditkartennummern oder personenidentifizierbare Informationen maskieren oder entfernen. So können Sie die Einhaltung von Datenschutzbestimmungen unterstützen.

  • Konvertierung von Datenformaten: Daten zwischen verschiedenen Formaten transformieren, um die Kompatibilität mit nachgelagerten Systemen zu gewährleisten.

  • Nachrichten filtern: 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-Inferenz: Mit der SMT für KI-Inferenz können Sie KI-Modelle nahtlos in Ihre Pub/Sub-Pipelines einbinden.

Arten von SMTs

Pub/Sub unterstützt die folgenden SMTs:

  • KI-Inferenz: Ruft Inferenz für Pub/Sub-Nachrichten aus einem Vertex AI-Modell ab.
  • Benutzerdefinierte Funktionen: Ruft eine benutzerdefinierte JavaScript-Funktion (UDF) auf, um benutzerdefinierte Transformationen für Pub/Sub-Nachrichten auszuführen.

Beispiel für den Nachrichtenfluss für SMTs

Das Bild zeigt ein Beispiel für ein Pub/Sub-System, in dem SMTs sowohl auf Thema- als auch auf Aboebene angewendet werden.

Abbildung, die zeigt, wie sich die Themen-SMT und die Abo-SMT auf Nachrichten auswirken.
Abbildung 1: Transformation von Nachrichten mit SMTs

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

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

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

  3. Wenn dem Thema ein Schema angehängt ist, werden die transformierten Nachrichten A' und B' anhand des Schemas validiert. Wenn beispielsweise A' 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 den Pub/Sub-Speicher geschrieben.

  5. Pub/Sub stellt die Nachrichten A' und B' an alle angehängten Abos zu, also Abo 1 und Abo 2, wie im Bild dargestellt.

  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 mit aktivierter Nutzlastentpackung ist, werden die Nachrichten A'' und B'' entpackt. Wenn Abo 2 ein Push-Abo mit aktivierter Nutzlastentpackung 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 fünf SMTs aktiviert werden.

  • SMTs werden für eine einzelne Pub/Sub-Nachricht ausgeführt. Sie können nicht mehrere Pub/Sub-Nachrichten zusammenfassen.

Nächste Schritte