Zum Inhalt springen

Katalogdaten synchronisieren und löschen

Diese Seite beschreibt, wie Sie Katalogdaten synchronisieren können.

Schritt 1: Einen neuen Katalog erstellen

Bevor Sie eine neue Integration der Cloud-Datenaufnahme (CDI) für Kataloge erstellen, müssen Sie einen neuen Katalog anlegen oder einen bestehenden Katalog bestimmen, den Sie für die Integration verwenden möchten. Es gibt mehrere Möglichkeiten, einen neuen Katalog zu erstellen, und jede davon funktioniert für die CDI-Integration:

Alle Änderungen am Katalogschema (zum Beispiel das Hinzufügen neuer Felder oder das Ändern eines Feldtyps) müssen über das Katalog-Dashboard vorgenommen werden, bevor aktualisierte Daten über CDI synchronisiert werden. Wir empfehlen, diese Updates vorzunehmen, während die Synchronisierung pausiert ist oder nicht zur Ausführung geplant ist, um Konflikte zwischen den Daten in Ihrem Data Warehouse und dem Schema in Braze zu vermeiden.

Schritt 2: Cloud Data Ingestion mit Katalogdaten integrieren

Die Einrichtung einer Katalogsynchronisierung entspricht weitgehend dem Prozess für CDI-Integrationen mit Nutzerdaten.

  1. Richten Sie in Snowflake eine Quelltabelle ein. Sie können die Namen aus dem folgenden Beispiel verwenden oder eigene Namen für Datenbank, Schema und Tabelle wählen. Statt einer Tabelle können Sie auch eine View oder eine materialisierte View verwenden.
     CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
     CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
     CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC (
          UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
          --ID of the catalog item to be created or updated
          ID VARCHAR(16777216) NOT NULL,
          --Catalog fields and values that should be added or updated
          PAYLOAD VARCHAR(16777216) NOT NULL,
          --The catalog item associated with this ID should be deleted
          DELETED BOOLEAN
     );
    
  2. Richten Sie eine Rolle, ein Warehouse und eine:n Nutzer:in ein und erteilen Sie die entsprechenden Berechtigungen. Wenn Sie bereits Zugangsdaten aus einer bestehenden Synchronisierung haben, können Sie diese wiederverwenden. Stellen Sie aber sicher, dass Sie den Zugriff auf die Katalog-Quelltabelle erweitern.
     CREATE ROLE BRAZE_INGESTION_ROLE;
    
     GRANT USAGE ON DATABASE BRAZE_CLOUD_PRODUCTION TO ROLE BRAZE_INGESTION_ROLE;
     GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
     GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC TO ROLE BRAZE_INGESTION_ROLE;
    
     CREATE WAREHOUSE BRAZE_INGESTION_WAREHOUSE;
     GRANT USAGE ON WAREHOUSE BRAZE_INGESTION_WAREHOUSE TO ROLE BRAZE_INGESTION_ROLE;
    
     CREATE USER BRAZE_INGESTION_USER;
     GRANT ROLE BRAZE_INGESTION_ROLE TO USER BRAZE_INGESTION_USER;
    

    Die Anweisung CREATE USER in diesem Beispiel gilt für die Authentifizierung per RSA-Schlüsselpaar. Für Workload Identity Federation erstellen Sie die Rolle und das Warehouse wie gezeigt und legen die Service-Nutzer:in über das Snowflake-Formular für Zugangsdaten an. Die Berechtigungen für Rolle, Warehouse und Datenbank bleiben unverändert. Wenn Ihr Konto eine Netzwerkrichtlinie verwendet, gilt die Allowlist aus dem nächsten Schritt weiterhin. Die Anweisung und den Ort, an dem Sie sie ausführen, finden Sie unter Snowflake für Workload Identity Federation konfigurieren.

  3. Wenn Ihr Snowflake-Konto Netzwerkrichtlinien hat, setzen Sie die IPs von Braze auf die Allowlist, damit sich der CDI-Dienst verbinden kann. Eine Liste der IPs finden Sie unter Cloud Data Ingestion.
  4. Gehen Sie im Braze-Dashboard zu Technologie-Partner > Snowflake und erstellen Sie eine neue Synchronisierung.
  5. Geben Sie die Verbindungsdetails (oder verwenden Sie bestehende Zugangsdaten wieder) und die Quelltabelle ein.
  6. Fahren Sie mit Schritt 2 des Einrichtungsablaufs fort, wählen Sie den Synchronisierungstyp „Catalogs“ aus und geben Sie den Namen der Integration und den Zeitplan ein. Beachten Sie, dass der Name der Integration exakt mit dem Namen des zuvor erstellten Katalogs übereinstimmen muss.
  7. Wählen Sie eine Synchronisierungshäufigkeit und fahren Sie mit dem nächsten Schritt fort.
  8. Fügen Sie bei einem RSA-Schlüsselpaar den im Dashboard angezeigten Public Key der Nutzer:in hinzu, die Sie für die Verbindung von Braze mit Snowflake erstellt haben. Für diesen Schritt benötigen Sie eine Person mit SECURITYADMIN-Zugriff oder höher in Snowflake. Bei Workload Identity Federation haben Sie die Anweisung aus dem Formular für Zugangsdaten bereits ausgeführt.
  9. Wählen Sie Verbindung testen aus, um sicherzustellen, dass alles wie erwartet funktioniert.
  10. Speichern Sie die Synchronisierung und nutzen Sie die synchronisierten Katalogdaten für alle Ihre Anwendungsfälle zur Personalisierung.
  1. Richten Sie in Redshift eine Quelltabelle ein. Sie können die Namen aus dem folgenden Beispiel verwenden oder eigene Namen für Datenbank, Schema und Tabelle wählen. Statt einer Tabelle können Sie auch eine View oder eine materialisierte View verwenden.
     CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
     CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
     CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC (
        updated_at timestamptz default sysdate not null,
        --ID of the catalog item to be created or updated
        id varchar not null,
        --Catalog fields and values that should be added or updated
        payload varchar(max),
        --The catalog item associated with this ID should be deleted
        deleted boolean
     )
    
  2. Richten Sie eine:n Nutzer:in ein und erteilen Sie die entsprechenden Berechtigungen. Wenn Sie bereits Zugangsdaten aus einer bestehenden Synchronisierung haben, können Sie diese wiederverwenden. Stellen Sie aber sicher, dass Sie den Zugriff auf die Katalog-Quelltabelle erweitern.

     CREATE USER braze_user PASSWORD '{password}';
     GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
     GRANT SELECT ON TABLE CATALOGS_SYNC TO braze_user;
    
  3. Wenn Sie eine Firewall oder andere Netzwerkrichtlinien haben, müssen Sie Braze Netzwerkzugriff auf Ihre Redshift-Instanz gewähren. Erlauben Sie den Zugriff von den folgenden IPs, die der Region Ihres Braze-Dashboards entsprechen. Eine Liste der IPs finden Sie unter Cloud Data Ingestion.
  1. Richten Sie optional ein neues Projekt oder Dataset ein, das Ihre Quelltabelle enthält.
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;

Erstellen Sie eine oder mehrere Tabellen für Ihre CDI-Integration mit den folgenden Feldern:

CREATE TABLE `BRAZE-CLOUD-PRODUCTION.INGESTION.CATALOGS_SYNC`
(
  updated_at TIMESTAMP DEFAULT current_timestamp,
  id STRING,
  payload JSON,
  deleted BOOLEAN
);
FELDNAME TYP MODUS
UPDATED_AT TIMESTAMP REQUIRED
PAYLOAD JSON REQUIRED
ID STRING REQUIRED
DELETED BOOLEAN OPTIONAL
  1. Richten Sie eine:n Nutzer:in ein und erteilen Sie die entsprechenden Berechtigungen. Wenn Sie bereits Zugangsdaten aus einer bestehenden Synchronisierung haben, können Sie diese wiederverwenden—stellen Sie aber sicher, dass Sie den Zugriff auf die Katalog-Quelltabelle erweitern. Das Dienstkonto sollte die folgenden Berechtigungen haben:
    • BigQuery Connection User: Damit kann Braze Verbindungen herstellen.
    • BigQuery User: Damit erhält Braze Zugriff, um Abfragen auszuführen, Dataset-Metadaten zu lesen und Tabellen aufzulisten.
    • BigQuery Data Viewer: Damit erhält Braze Zugriff, um Datasets und deren Inhalte anzuzeigen.
    • BigQuery Job User: Damit erhält Braze Zugriff, um Jobs auszuführen

      Nachdem Sie das Dienstkonto erstellt und die Berechtigungen erteilt haben, legen Sie fest, wie sich Braze als Dienstkonto authentifiziert. Verwenden Sie Workload Identity Federation, damit Sie keinen Schlüssel erstellen müssen, oder generieren Sie einen JSON-Schlüssel. Weitere Informationen zu JSON-Schlüsseln finden Sie unter Schlüssel erstellen und löschen. Wenn Sie einen JSON-Schlüssel generieren, laden Sie ihn später in das Braze-Dashboard hoch.
  1. Wenn Sie Netzwerkrichtlinien eingerichtet haben, müssen Sie Braze Netzwerkzugriff auf Ihre BigQuery-Instanz gewähren. Eine Liste der IPs finden Sie unter Cloud Data Ingestion.
  1. Richten Sie in Databricks eine Quelltabelle ein. Sie können die Namen aus dem folgenden Beispiel verwenden oder eigene Namen für Katalog, Schema und Tabelle wählen. Statt einer Tabelle können Sie auch eine View oder eine materialisierte View verwenden.
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
CREATE TABLE `BRAZE-CLOUD-PRODUCTION.INGESTION.CATALOGS_SYNC`
(
  updated_at TIMESTAMP DEFAULT current_timestamp(),
  id STRING,
  deleted BOOLEAN,
  payload STRING, STRUCT, or MAP
);
FELDNAME TYP MODUS
UPDATED_AT TIMESTAMP REQUIRED
PAYLOAD STRING, STRUCT oder MAP REQUIRED
ID STRING REQUIRED
DELETED BOOLEAN NULLABLE
  1. Erstellen Sie Zugangsdaten für Braze. Braze empfiehlt OAuth Machine-to-Machine (M2M) mit einem Service Principal, Sie können aber auch ein persönliches Zugriffstoken verwenden. Wenn Sie bereits Zugangsdaten aus einer bestehenden Synchronisierung haben, können Sie diese wiederverwenden. Stellen Sie aber sicher, dass Sie den Zugriff auf die Katalog-Quelltabelle erweitern.

OAuth M2M: Erstellen Sie einen Service Principal, generieren Sie ein Client-Secret, erteilen Sie dem Service Principal die Berechtigung Can use für Ihr SQL-Warehouse und erteilen Sie ihm SELECT für die Katalog-Quelltabelle. Die einzelnen Schritte finden Sie unter Zugangsdaten für Braze erstellen.

Persönliches Zugriffstoken:

  • a. Wählen Sie Ihren Databricks-Nutzernamen aus und wählen Sie dann im Dropdown-Menü User Settings aus.
  • b. Wählen Sie im Tab Access tokens die Option Generate new token aus.
  • c. Geben Sie einen Kommentar ein, mit dem Sie dieses Token identifizieren können, zum Beispiel „Braze CDI“.
  • d. Ändern Sie die Lifetime des Tokens auf unbegrenzt, indem Sie das Feld Lifetime (days) leer lassen. Wählen Sie Generate aus.
  • e. Kopieren Sie das angezeigte Token und wählen Sie dann Done aus.
  • f. Bewahren Sie das Token an einem sicheren Ort auf, bis Sie es beim Erstellen der Zugangsdaten im Braze-Dashboard eingeben müssen.
  1. Wenn Sie Netzwerkrichtlinien eingerichtet haben, müssen Sie Braze Netzwerkzugriff auf Ihre Databricks-Instanz gewähren. Eine Liste der IPs finden Sie auf der Seite Cloud Data Ingestion.

Erstellen Sie eine oder mehrere Tabellen für Ihre CDI-Integration mit den folgenden Feldern:

CREATE OR ALTER TABLE [warehouse].[schema].[CDI_table_name]
(
  UPDATED_AT DATETIME2(6) NOT NULL,
  PAYLOAD VARCHAR NOT NULL,
  ID VARCHAR NOT NULL,
  DELETED BIT
)
GO
  1. Richten Sie einen Service Principal ein und erteilen Sie die entsprechenden Berechtigungen. Wenn Sie bereits Zugangsdaten aus einer bestehenden Synchronisierung haben, können Sie diese wiederverwenden—stellen Sie nur sicher, dass Sie den Zugriff auf die Katalog-Quelltabelle erweitern. Wie Sie einen neuen Service Principal und Zugangsdaten erstellen, erfahren Sie auf der Seite Cloud Data Ingestion.
  1. Wenn Sie Netzwerkrichtlinien eingerichtet haben, müssen Sie Braze Netzwerkzugriff auf Ihre Microsoft Fabric-Instanz gewähren. Eine Liste der IPs finden Sie unter Cloud Data Ingestion.

Erstellen Sie Quelldateien in S3 im JSON- oder CSV-Format. Jede Datei muss die folgenden Felder enthalten:

Feld Erforderlich? Beschreibung
ID Ja Die ID des Katalogartikels, der erstellt oder aktualisiert werden soll.
PAYLOAD Ja Ein JSON-String mit den Feldern, die mit dem Katalogartikel in Braze synchronisiert werden sollen.
DELETED Optional Bei true wird der entsprechende Katalogartikel aus dem Katalog entfernt.
UPDATED_AT Nicht unterstützt Dateispeicher unterstützen keine UPDATED_AT-Spalten.

Für die vollständige S3-Einrichtung benötigen Sie einen S3-Bucket, eine Amazon SQS-Warteschlange sowie eine AWS IAM-Rolle und -Richtlinie. Braze verarbeitet nur Dateien, die nach dem Erstellen der Synchronisierung hochgeladen werden. Laden Sie bestehende Dateien, die Sie aufnehmen möchten, daher erneut hoch.

Den vollständigen Ablauf der S3-Einrichtung finden Sie unter Integrationen für Dateispeicher, insbesondere:

Informationen zu häufigen Problemen mit Benachrichtigungen und Berechtigungen auf AWS-Seite finden Sie unter Berechtigungen zum Veröffentlichen von Ereignisbenachrichtigungen an ein Ziel erteilen.

Die folgenden Beispiele zeigen gültige JSON- und CSV-Formate für die Synchronisierung von Katalogdaten aus Dateispeichern.

{"id":"85","payload":"{\"product_name\":\"Product 85\",\"price\":85.85}"}
{"id":"86","payload":"{\"product_name\":\"Product 86\",\"price\":86.86}"}
{"id":"1","payload":"{\"product_name\":\"Product 1\",\"price\":1.01}","deleted":true}
ID,PAYLOAD,DELETED
85,"{""product_name"": ""Product 85"", ""price"": 85.85}",false
86,"{""product_name"": ""Product 86"", ""price"": 86.86}",false
1,"{""product_name"": ""Product 1"", ""price"": 1.01}",true
ID,PAYLOAD
85,"{""product_name"": ""Product 85"", ""price"": 85.85}"
86,"{""product_name"": ""Product 86"", ""price"": 86.86}"

Weitere Dateibeispiele finden Sie unter Integrationen für Dateispeicher.

So funktioniert die Integration

Bei jeder Synchronisierung ruft Braze alle Zeilen ab, deren UPDATED_AT später als der zuletzt synchronisierte Wert ist. Zeilen mit genau dem Grenz-Zeitstempel werden möglicherweise erneut synchronisiert, wenn neue Zeilen denselben Zeitstempel haben. Wir empfehlen, in Ihrem Data Warehouse aus Ihren Katalogdaten eine View zu erstellen, um eine Quelltabelle einzurichten, die bei jeder Synchronisierung vollständig aktualisiert wird. Mit Views müssen Sie die Abfrage nicht jedes Mal neu schreiben.

Wenn Sie beispielsweise eine Tabelle mit Produktdaten (product_catalog_1) mit product_id und drei zusätzlichen Attributen haben, können Sie die folgende View synchronisieren:

CREATE VIEW BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS
SELECT
    CURRENT_TIMESTAMP as UPDATED_AT,
    product_id as id,
    TO_JSON(
        OBJECT_CONSTRUCT (
            'attribute_1',
            attribute_1,
            'attribute_2',
            attribute_2,
            'attribute_3',
            attribute_3)
    )as PAYLOAD FROM "product_catalog_1";
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS
SELECT
    CURRENT_TIMESTAMP as UPDATED_AT,
    Product_id as id,
    JSON_SERIALIZE(
        OBJECT (
            'attribute_1',
            attribute_1,
            'attribute_2',
            attribute_2,
            'attribute_3',
            attribute_3)
    ) as PAYLOAD FROM "product_catalog_1";
CREATE view IF NOT EXISTS BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS (SELECT
    last_updated as UPDATED_AT,
    product_id as ID,
    TO_JSON(
      STRUCT(
      attribute_1,
      attribute_2,
      attribute_3,
      )
    ) as PAYLOAD
  FROM `BRAZE_CLOUD_PRODUCTION.INGESTION.product_catalog_1`);
CREATE view IF NOT EXISTS BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS (SELECT
    last_updated as UPDATED_AT,
    product_id as ID,
    TO_JSON(
      STRUCT(
      attribute_1,
      attribute_2,
      attribute_3,
      )
    ) as PAYLOAD
  FROM `BRAZE_CLOUD_PRODUCTION.INGESTION.product_catalog_1`);
CREATE VIEW [braze].[user_update_example]
AS SELECT
    id as ID,
    CURRENT_TIMESTAMP as UPDATED_AT,
    JSON_OBJECT('attribute_1':attribute_1, 'attribute_2':attribute_2, 'attribute_3':attribute_3, 'attribute_4':attribute_4) as PAYLOAD

FROM [braze].[product_catalog] ;
  • Die aus der Integration abgerufenen Daten werden verwendet, um Artikel im Zielkatalog anhand der angegebenen id zu erstellen oder zu aktualisieren.
  • Wenn DELETED auf true gesetzt ist, wird der entsprechende Katalogartikel gelöscht.
  • Die Synchronisierung protokolliert keine Datenpunkte, aber alle synchronisierten Daten werden auf Ihre gesamte Katalognutzung angerechnet. Diese Nutzung wird anhand der insgesamt gespeicherten Daten gemessen, sodass Sie sich keine Gedanken darüber machen müssen, nur geänderte Daten zu synchronisieren.
New Stuff!