Zum Inhalt springen

Sitzungsspeicher im Cloud Datastore in Jitterbit Studio speichern und abrufen

Einführung

Cloud Datastore ist das integrierte Cloud-Speichersystem von Jitterbit. Es ermöglicht Studio-Operationen, Daten zwischen den Ausführungen zu speichern und abzurufen, ohne eine externe Datenbank zu benötigen. Dieser Leitfaden behandelt das gängige Muster zum Speichern des Sitzungsspeichers (wie Gesprächsverlauf, benutzerspezifische Flags oder kontextübergreifende Informationen) mithilfe eines Cloud Datastore Schlüssel-Speichers.

Der Schlüssel-Speicher ist der geeignete Speichertyp für den Sitzungsspeicher. Daten in einem Schlüssel-Speicher bleiben erhalten, bis sie ausdrücklich gelöscht werden, was bedeutet, dass Datensätze unbegrenzt über Sitzungen hinweg bestehen bleiben. Im Gegensatz dazu ist der Status-Speicher für die Verfolgung von Betriebsstatus vorgesehen und wird nach 90 Tagen automatisch gelöscht, was ihn für dauerhafte Sitzungsdatensätze ungeeignet macht.

Warnung

Cloud Datastore gibt Daten im Klartext zurück. Speichern Sie keine Passwörter, Anmeldeinformationen oder andere sensible Informationen in Cloud Datastore-Speichern.

Entwurfsmuster

Drei Operationen implementieren das Muster für den Sitzungsspeicher:

flowchart LR A[Transformation] --> B[Query Items] --> C[Script] C -->|"No record found"| D[Transformation] --> E[Insert Items] C -->|"Record found"| F[Transformation] --> G[Update Items]

Die Abfrageoperation sucht den Sitzungsdatensatz anhand eines eindeutigen Schlüssels (typischerweise einer Benutzer-ID oder Sitzungs-ID) und überprüft, ob bereits ein Datensatz für diesen Schlüssel existiert. Eine Transformation vor der Query Items-Aktivität setzt den Abfragefilter, und ein Skript danach liest totalItems aus der Abfrageantwort: Wenn der Wert 0 ist, wird die Einfügeoperation ausgeführt, um einen neuen Datensatz zu erstellen; wenn der Wert größer als 0 ist, wird die Aktualisierungsoperation ausgeführt, um den vorhandenen Datensatz mit neuen Sitzungsdaten zu überschreiben.

Teil 1: Erstellen Sie den Schlüssel-Speicher

Bevor Sie den Connector im Studio konfigurieren, erstellen Sie einen Schlüssel-Speicher und ein Zugriffstoken in der Management Console.

  1. Navigieren Sie im Harmony-Portal zu Harmony-Portal-Menü > Management Console > Cloud Datastore.

  2. Klicken Sie auf der Registerkarte Speicher auf Speicher hinzufügen, und wählen Sie dann Schlüssel-Speicher erstellen.

  3. Speichername: Geben Sie einen Namen für den Speicher ein (zum Beispiel ConversationHistory).

  4. Umgebung: Wählen Sie die Umgebung aus, die diesen Speicher verwenden wird. Dieses Feld kann nach dem Speichern nicht mehr geändert werden.

  5. Beschreibung: Geben Sie optional eine Beschreibung ein.

  6. Unter Felder klicken Sie auf Feld hinzufügen für jedes benutzerdefinierte Feld, das benötigt wird, um Sitzungsdaten zu speichern. Für den Gesprächsverlauf fügen Sie ein Feld mit dem Namen ConversationHistory vom Typ Großer Text hinzu. Die integrierten Felder Key, Alternative Key und Value sind immer vorhanden und müssen nicht hinzugefügt werden.

    Hinweis

    Es sind maximal 20 benutzerdefinierte Felder pro Speicher erlaubt, und jedes Element ist auf 25.000 Bytes begrenzt.

  7. Klicken Sie auf Speichern.

  8. Navigieren Sie zu Harmony-Portal-Menü > Management-Konsole > Zugriffstoken und erstellen Sie ein neues Zugriffstoken, das auf dieselbe Umgebung beschränkt ist. Kopieren Sie den Token-Wert.

    Tipp

    Speichern Sie das Zugriffstoken als Projektvariable mit verborgenem Wert und verweisen Sie dann in der Verbindungs-Konfiguration darauf. Dies erleichtert das Rotieren des Tokens, ohne die Verbindung direkt zu bearbeiten.

Teil 2: Konfigurieren Sie die Cloud Datastore-Verbindung

  1. Öffnen Sie im Studio Ihr Projekt und klicken Sie auf die Registerkarte Projektendpunkte und -verbinder im Design-Komponenten-Palette.

  2. Klicken Sie auf den Cloud Datastore-Connector, um die Verbindungs-Konfiguration zu öffnen.

  3. Verbindungsname: Geben Sie einen Namen für die Verbindung ein (zum Beispiel Cloud Datastore).

  4. Zugriffstoken: Geben Sie das in Teil 1 generierte Zugriffstoken ein oder verweisen Sie darauf, indem Sie eine Projektvariable verwenden.

  5. Klicken Sie auf Testen, um die Verbindung zu überprüfen, und klicken Sie dann auf Änderungen speichern.

Teil 3: Abfrage eines vorhandenen Sitzungsdatensatzes

Die Abfrageoperation bestimmt, ob bereits ein Sitzungsdatensatz für den aktuellen Benutzer existiert.

Konfigurieren Sie die Aktivität Abfrageelemente

  1. Erweitern Sie im Design-Komponenten-Palette den Cloud Datastore-Endpunkt, den Sie erstellt haben. Ziehen Sie den Aktivitätstyp Query Items auf die Design-Leinwand.

  2. Doppelklicken Sie auf die Aktivität, um ihre Konfiguration zu öffnen.

  3. Name: Geben Sie einen Namen für die Aktivität ein (zum Beispiel Query Session).

  4. Speicher auswählen: Wählen Sie Existierenden Speicher auswählen, und klicken Sie dann auf den in Teil 1 in der Tabelle erstellten Speicher.

  5. Klicken Sie auf Weiter, um die Datenschemas zu überprüfen, und klicken Sie dann auf Fertig.

Filtern der Abfrage in einer Transformation zuordnen

Platzieren Sie eine Transformation vor der Aktivität Query Items, um festzulegen, welchen Datensatz Sie abrufen möchten. In der Transformation:

  • Ordnen Sie fields.item.key der wörtlichen Zeichenfolge "Key" zu. Dies ist der integrierte Schlüssel-Feldname in einem Schlüssel-Speicher und ist groß-/kleinschreibungsempfindlich.
  • Ordnen Sie fields.item.value der Sitzungskennung zu (zum Beispiel der Benutzer-ID oder Kanal-ID aus der eingehenden Anforderungsnutzlast).
  • Ordnen Sie limit dem Wert 1 zu. Es wird nur ein Datensatz pro Sitzungs-Schlüssel erwartet.

Wenn die eingehende Anfrage beispielsweise die Benutzer-ID in einer Variablen userId bereitstellt:

<trans>
$userId
</trans>

Ordnen Sie diesen Skriptnode in der Transformation fields.item.value zu.

Überprüfen des Abfrageergebnisses in einem Skript

Fügen Sie nach der Aktivität Query Items einen Skript Schritt zur Operation hinzu. Das Skript liest totalItems aus der Abfrageantwort und leitet die Ausführung entweder zur Einfüge- oder Aktualisierungsoperation weiter:

<trans>
if(Source.json.pagination.totalItems == 0,
  RunOperation("<TAG>Operations/Insert Session</TAG>"),
  RunOperation("<TAG>Operations/Update Session</TAG>")
);
</trans>

Ersetzen Sie Insert Session und Update Session durch die tatsächlichen Namen, die Sie diesen Operationen in Teil 4 und Teil 5 geben. Die <TAG>-Syntax löst die Operation zur Laufzeit nach Namen auf.

Tipp

Um den Sitzungs-Schlüssel und alle Nutzlastdaten an die Einfüge- und Aktualisierungsoperationen zu übergeben, speichern Sie sie in globalen Variablen, bevor Sie RunOperation aufrufen. Globale Variablen bleiben während der Dauer der Operationskette bestehen.

Teil 4: Einen Datensatz für eine neue Sitzung einfügen

Die Einfügeoperation wird ausgeführt, wenn kein Datensatz für den Sitzungsschlüssel vorhanden ist.

Konfigurieren Sie die Aktivität "Elemente einfügen"

  1. Ziehen Sie den Aktivitätstyp Elemente einfügen auf eine neue Operationsfläche.

  2. Doppelklicken Sie auf die Aktivität, um deren Konfiguration zu öffnen.

  3. Name: Geben Sie einen Namen für die Aktivität ein (zum Beispiel Sitzung einfügen).

  4. Speicher auswählen: Wählen Sie denselben Speicher wie in Teil 3.

  5. Klicken Sie auf Weiter, um die Datenschemas zu überprüfen, und klicken Sie dann auf Fertig.

Ordnen Sie die Sitzungsdaten zu

In der Transformation, die der Aktivität Elemente einfügen vorausgeht, ordnen Sie die folgenden Anforderungsfelder zu:

  • Key: Ordnen Sie dem Sitzungsbezeichner zu (zum Beispiel userId). Dies ist der Wert, der verwendet wird, um den Datensatz in zukünftigen Abfragen nachzuschlagen.
  • ConversationHistory (oder welche benutzerdefinierten Felder Ihr Speicher definiert): Ordnen Sie die initialen Sitzungsdaten zu, die gespeichert werden sollen.

Lassen Sie AlternativeKey und Value unzugeordnet, es sei denn, Ihr Anwendungsfall erfordert sie.

Teil 5: Einen vorhandenen Sitzungsdatensatz aktualisieren

Die Aktualisierungsoperation wird ausgeführt, wenn bereits ein Datensatz für den Sitzungsschlüssel vorhanden ist.

Konfigurieren Sie die Aktivität "Elemente aktualisieren"

  1. Ziehen Sie den Aktivitätstyp Elemente aktualisieren auf eine neue Operationsfläche.

  2. Doppelklicken Sie auf die Aktivität, um deren Konfiguration zu öffnen.

  3. Name: Geben Sie einen Namen für die Aktivität ein (zum Beispiel Sitzung aktualisieren).

  4. Speicher auswählen: Wählen Sie denselben Speicher wie in Teil 3.

  5. Klicken Sie auf Weiter, um die Datenschemas zu überprüfen, und klicken Sie dann auf Fertig.

Ordnen Sie die aktualisierten Sitzungsdaten zu

In der Transformation, die der Aktivität Elemente aktualisieren vorausgeht, ordnen Sie die folgenden Anforderungsfelder zu:

  • Key: Ordnen Sie dem Sitzungsbezeichner zu. Dieses Feld identifiziert, welcher Datensatz aktualisiert werden soll: Es muss mit dem Wert übereinstimmen, der beim Einfügen des Datensatzes verwendet wurde.
  • ConversationHistory (oder welche benutzerdefinierten Felder Ihr Speicher definiert): Ordnen Sie die aktualisierten Sitzungsdaten zu. Alle zugeordneten Felder werden überschrieben.

Hinweis

Die Update Items-Aktivität verknüpft den Datensatz, der aktualisiert werden soll, mithilfe des Key-Felds. Wenn kein Datensatz mit diesem Schlüssel vorhanden ist, wird das Update stillschweigend erfolgreich durchgeführt, ohne einen neuen Datensatz zu erstellen. Bestätigen Sie immer das Abfrageergebnis, bevor Sie die Update-Operation aufrufen.

Verify the integration

  1. Deploy and run Sie die Abfrageoperation manuell und übergeben Sie eine Sitzungskennung, die noch nicht im Speicher vorhanden ist.

  2. Bestätigen Sie im Betriebsprotokoll, dass totalItems 0 ist und dass die Insert-Operation ausgelöst wurde.

  3. Öffnen Sie in Management Console > Cloud Datastore die Speicherdetails und bestätigen Sie, dass ein neuer Datensatz mit dem erwarteten Schlüssel und den Feldwerten erscheint.

  4. Deployen und führen Sie die Abfrageoperation erneut mit derselben Sitzungskennung aus.

  5. Bestätigen Sie im Betriebsprotokoll, dass totalItems 1 ist und dass die Update-Operation ausgelöst wurde.

  6. Bestätigen Sie in Management Console > Cloud Datastore, dass die benutzerdefinierten Felder des Datensatzes die aktualisierten Werte widerspiegeln.

  7. Wenn die Query-Aktivität mit einem Authentifizierungsfehler fehlschlägt, überprüfen Sie das Zugriffstoken in der Cloud Datastore-Verbindung und bestätigen Sie, dass das Token mit derselben Umgebung wie der Speicher verknüpft ist.

Tipp

Um Sitzungsdaten am Ende eines Gesprächs zu löschen, fügen Sie eine vierte Operation mit einer Delete Items activity hinzu, die den Datensatz über den Key anvisiert. Dies verhindert, dass der Speicher veraltete Datensätze ansammelt.

Cloud Datastore kann auch für die deduplizierung über mehrere Ausführungen bei hohem Volumen verwendet werden, als Alternative zu Cache-Funktionen. Siehe Detect and deduplicate records using hash functions.