Ingestion de données cloud pour Amazon Redshift
Cette page couvre tout ce dont vous avez besoin pour synchroniser des données d’Amazon Redshift vers Braze avec l’ingestion de données cloud (CDI) : les ressources à créer dans Redshift, la connexion de la source et la création d’une synchronisation dans Braze, la table source pour chaque type de données, ainsi que la résolution des problèmes propres à Redshift.
Aperçu de la configuration
- Dans votre instance Redshift, configurez les tables ou les vues que vous souhaitez synchroniser avec Braze.
- Créez un utilisateur Redshift pour Braze avec l’une des méthodes d’authentification prises en charge, puis accordez-lui l’accès à vos tables.
- Assurez-vous que Braze est autorisé à accéder aux tables Redshift que vous souhaitez synchroniser. Braze se connecte à Redshift via Internet.
- Créez une nouvelle source et une synchronisation dans le tableau de bord de Braze.
- Validez l’intégration et lancez la synchronisation.

Le nombre de lignes traitées par synchronisation dépend des performances de votre entrepôt de données, de la latence du réseau et de la quantité de nouvelles données correspondant à la requête de synchronisation. Consultez l’Historique de synchronisation de l’intégration dans le tableau de bord pour connaître la durée et le nombre de lignes des exécutions récentes.
Étape 1 : Configurer votre table source
Les étapes de cette section créent une table avec une colonne payload. Si vous prévoyez de mapper des colonnes avec l’option Visuel ou d’écrire une requête avec l’option SQL à l’étape Définition des données, vous pouvez plutôt utiliser une table ou une vue existante. Ignorez l’étape de création de la table et accordez à Braze un accès en lecture aux tables ou aux vues que vous souhaitez synchroniser. Pour comparer les options, consultez Choisir une option de définition des données.
Vous pouvez nommer la base de données, le schéma et la table comme vous le souhaitez, mais les noms des colonnes doivent correspondre aux définitions des onglets suivants. Vous pouvez également utiliser une vue ou une vue matérialisée au lieu d’une table.
Si vous le souhaitez, configurez une nouvelle base de données et un nouveau schéma pour héberger votre table source :
CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;

Si vous utilisez une colonne payload, votre table ou vue source peut inclure des colonnes qui ne figurent pas dans les onglets suivants (par exemple, pour l’audit ou le hachage). Braze lit uniquement les colonnes décrites dans ces onglets ; les autres colonnes ne sont pas utilisées lors des synchronisations de l’ingestion de données cloud.
Sélectionnez l’onglet correspondant au type de données que vous souhaitez synchroniser.
Les attributs utilisateur, les événements personnalisés et les événements d’achat utilisent tous la même structure de table source. Seul le contenu de payload diffère.
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC (
updated_at timestamptz default sysdate,
--at least one of external_id, alias_name and alias_label, or braze_id is required
external_id varchar,
--if using user alias, both alias_name and alias_label are required
alias_label varchar,
alias_name varchar,
--braze_id can only be used to update existing users created through the Braze SDK
braze_id varchar,
--If you include both email and phone, email is used as the primary identifier
email varchar,
phone varchar,
payload varchar(max)
)
UPDATED_AT- L’heure à laquelle cette ligne a été mise à jour ou ajoutée à la table. Braze synchronise les lignes dont la valeurUPDATED_ATest postérieure à la dernière valeur synchronisée. Les lignes situées exactement à l’horodatage limite peuvent être resynchronisées si de nouvelles lignes partagent ce même horodatage.- Colonnes d’identifiant utilisateur - Votre table peut contenir une ou plusieurs colonnes d’identifiant utilisateur. Chaque ligne ne doit contenir qu’un seul identifiant (soit
external_id, soit la combinaison dealias_nameetalias_label, soitbraze_id,emailouphone). Une table source peut comporter des colonnes pour un, deux, trois, quatre ou les cinq types d’identifiants.EXTERNAL_ID- Identifie l’utilisateur que vous souhaitez mettre à jour. Cette valeur doit correspondre à la valeurexternal_idutilisée dans Braze.ALIAS_NAMEetALIAS_LABEL- Ces deux colonnes créent un objet alias d’utilisateur.alias_namedoit être un identifiant unique, etalias_labelindique le type d’alias. Les utilisateurs peuvent avoir plusieurs alias avec des libellés différents, mais un seulalias_nameparalias_label.BRAZE_ID- L’identifiant utilisateur Braze. Il est généré par le SDK de Braze, et il n’est pas possible de créer de nouveaux utilisateurs à l’aide d’un ID Braze via l’ingestion de données cloud. Pour créer de nouveaux utilisateurs, indiquez un ID utilisateur externe ou un alias d’utilisateur.EMAIL- L’adresse e-mail de l’utilisateur. Si plusieurs profils partagent la même adresse e-mail, le profil mis à jour le plus récemment est prioritaire pour les mises à jour. Si vous incluez à la fois l’e-mail et le numéro de téléphone, l’e-mail sert d’identifiant principal.PHONE- Le numéro de téléphone de l’utilisateur. Si plusieurs profils partagent le même numéro de téléphone, le profil mis à jour le plus récemment est prioritaire pour les mises à jour.
payload- Il s’agit d’une chaîne de caractères JSON contenant les champs que vous souhaitez synchroniser avec l’utilisateur dans Braze.
Pour les synchronisations d’attributs, payload suit le format de l’objet des attributs utilisateur. Vous pouvez inclure des attributs personnalisés imbriqués, des tableaux d’objets et des statuts de groupe d’abonnement. Pour des exemples de payloads, consultez Configuration des tables.
Les événements personnalisés utilisent la même table source que les attributs utilisateur. Créez la table présentée dans l’onglet Attributs utilisateur, puis renseignez payload avec un objet d’événement.
Pour synchroniser des événements, un nom d’événement est requis. Formatez le champ time sous forme de chaîne de caractères ISO 8601 ou au format yyyy-MM-dd'T'HH:mm:ss:SSSZ. Si le champ time est absent, Braze utilise la valeur de la colonne UPDATED_AT comme heure de l’événement. Les autres champs, notamment app_id et properties, sont facultatifs.
Vous pouvez synchroniser un événement par ligne.
{
"app_id" : "your-app-id",
"name" : "rented_movie",
"time" : "2013-07-16T19:20:45+01:00",
"properties": {
"movie": "The Sad Egg",
"director": "Alex Smith"
}
}
Les événements d’achat utilisent la même table source que les attributs utilisateur. Créez la table présentée dans l’onglet Attributs utilisateur, puis renseignez payload avec un objet d’achat.
Pour synchroniser des événements d’achat, les champs product_id, currency et price sont requis. Formatez le champ facultatif time sous forme de chaîne de caractères ISO 8601 ou au format yyyy-MM-dd'T'HH:mm:ss:SSSZ. Si le champ time est absent, Braze utilise la valeur de la colonne UPDATED_AT comme heure de l’événement. Les autres champs, notamment app_id, quantity et properties, sont facultatifs.
Vous pouvez synchroniser un événement d’achat par ligne.
{
"app_id" : "11ae5b4b-2445-4440-a04f-bf537764c9ad",
"product_id" : "Completed Order",
"currency" : "USD",
"price" : 219.98,
"time" : "2013-07-16T19:20:30+01:00",
"properties" : {
"products" : [ { "name": "Monitor", "category": "Gaming", "product_amount": 19.99 },
{ "name": "Gaming Keyboard", "category": "Gaming ", "product_amount": 199.99 }
]
}
}
Avant de créer une synchronisation de catalogue, créez le catalogue cible dans Braze. Pour connaître le flux de travail complet des catalogues, consultez Synchroniser et supprimer des données de catalogue.
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
)
Accordez à l’utilisateur Braze l’accès à cette table, en plus de vos autres tables sources :
GRANT SELECT ON TABLE CATALOGS_SYNC TO braze_user;
Le nom de l’intégration doit correspondre exactement au nom du catalogue que vous avez créé dans Braze.
Braze recommande de créer une vue à partir de vos données de catalogue afin que la table source soit entièrement actualisée à chaque exécution d’une synchronisation. Par exemple, si vous disposez d’une table de données produit (product_catalog_1) avec product_id et trois attributs supplémentaires, vous pouvez synchroniser ce qui suit :
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";
Les déclencheurs de Canvas alimentent la personnalisation sans copie (zero-copy). Pour la configuration du Canvas de destination et les points à prendre en compte, consultez Personnalisation sans copie.
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC (
updated_at timestamptz default sysdate not null,
--at least one of external_id or alias_name and alias_label is required
external_id varchar not null,
--if using user alias, both alias_name and alias_label are required
alias_label varchar,
alias_name varchar,
properties varchar(max)
);
Les synchronisations de déclencheurs Canvas diffèrent des autres synchronisations de données utilisateur sur trois points :
- Seuls les identifiants de type ID externe ou alias d’utilisateur sont pris en charge. Les adresses e-mail et les numéros de téléphone ne sont pas des identifiants pris en charge.
- Seuls les utilisateurs Braze existants peuvent être synchronisés. Il n’est pas possible de créer de nouveaux utilisateurs.
PROPERTIESremplace la colonnepayload. Il s’agit d’une chaîne de caractères JSON contenant les champs que vous souhaitez utiliser comme propriétés d’entrée du Canvas pour la personnalisation.
Votre table de déclencheurs Canvas doit contenir les colonnes suivantes :
UPDATED_AT- Le moment où cette ligne a été mise à jour ou ajoutée à la table. Braze synchronise les lignes dont la valeurUPDATED_ATest postérieure à la dernière valeur synchronisée. Les lignes situées exactement à l’horodatage limite peuvent être resynchronisées si de nouvelles lignes partagent ce même horodatage.- Soit
EXTERNAL_ID, soitALIAS_NAMEetALIAS_LABELcomme colonne d’identifiant utilisateur. Ces colonnes identifient les utilisateurs pour lesquels vous souhaitez déclencher des messages Canvas.EXTERNAL_ID- Identifie l’utilisateur à faire entrer dans le Canvas. Cette valeur doit correspondre à la valeurexternal_idutilisée dans Braze.ALIAS_NAMEetALIAS_LABEL- Ces colonnes créent un objet alias d’utilisateur.alias_namedoit être un identifiant unique, etalias_labelindique le type d’alias. Les utilisateurs peuvent avoir plusieurs alias avec des libellés différents, mais un seulalias_nameparalias_label.
PROPERTIES- Une chaîne de caractères JSON contenant les champs à rendre disponibles comme propriétés de personnalisation dans votre Canvas. Elle doit contenir des informations propres à chaque utilisateur.

Les propriétés ne sont pas obligatoires pour chaque ligne ou chaque utilisateur. En revanche, leurs valeurs doivent être une chaîne de caractères JSON valide. Si la ligne ne comporte aucune propriété, saisissez une chaîne vide {}.
Accordez à l’utilisateur Braze l’accès à cette table :
GRANT SELECT ON TABLE CANVAS_TRIGGERS_SYNC TO braze_user;
Pour commencer, sélectionnez le type de données Déclencheurs de Canvas lors de la création d’une nouvelle synchronisation.
Les tables sources pour les suppressions d’utilisateurs doivent inclure un ou plusieurs types d’identifiants utilisateur ainsi qu’un horodatage UPDATED_AT. Les colonnes de payload ne sont pas prises en charge pour les données de suppression d’utilisateurs.
UPDATED_AT- L’heure à laquelle cette ligne a été mise à jour ou ajoutée à la table. Braze synchronise les lignes dont la valeurUPDATED_ATest postérieure à la dernière valeur synchronisée. Les lignes situées exactement à l’horodatage limite peuvent être resynchronisées si de nouvelles lignes partagent ce même horodatage.- Colonnes d’identifiant utilisateur - Chaque ligne ne doit contenir qu’un seul identifiant : soit
external_id, soit la combinaison dealias_nameetalias_label, soitbraze_id. Une table source peut contenir des colonnes pour un, deux ou les trois types d’identifiants.EXTERNAL_ID- Identifie l’utilisateur que vous souhaitez mettre à jour. Cette valeur doit correspondre à la valeurexternal_idutilisée dans Braze.ALIAS_NAMEetALIAS_LABEL- Ces deux colonnes créent un objet alias d’utilisateur.alias_namedoit être un identifiant unique, etalias_labelindique le type d’alias. Les utilisateurs peuvent avoir plusieurs alias avec des libellés différents, mais un seulalias_nameparalias_label.BRAZE_ID- L’identifiant utilisateur Braze. Il est généré par le SDK de Braze, et il n’est pas possible de créer de nouveaux utilisateurs à l’aide d’un ID Braze via Cloud Data Ingestion. Pour créer de nouveaux utilisateurs, indiquez un ID utilisateur externe ou un alias d’utilisateur.

N’incluez pas de colonne payload dans votre table pour la suppression d’utilisateurs. Pour éviter toute suppression accidentelle et définitive d’utilisateurs, la synchronisation échoue si une colonne de payload est présente dans la table source. Toutes les autres colonnes sont autorisées, mais Braze les ignore.
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_DELETES (
updated_at timestamptz default sysdate,
--at least one of external_id, alias_name and alias_label, or braze_id is required
external_id varchar,
--if using user alias, both alias_name and alias_label are required
alias_label varchar,
alias_name varchar,
--braze_id can only be used to update existing users created through the Braze SDK
braze_id varchar
);
Sur la page Créer une synchronisation d’importation, définissez le Type de données sur Supprimer des utilisateurs afin que les actions appropriées soient effectuées lors de l’exécution de l’intégration. Pour plus d’informations, consultez Supprimer des utilisateurs avec l’ingestion de données cloud.

La suppression de profils utilisateurs est irréversible. L’action de suppression retire définitivement les utilisateurs, ce qui peut entraîner des écarts dans vos données. Pour plus de détails, consultez Effets de la suppression de profils utilisateurs.
Étape 2 : Configurer l’authentification
Braze se connecte à Redshift en tant qu’utilisateur de base de données. Créez l’utilisateur avec l’une des méthodes d’authentification suivantes :
| Méthode | Mode d’authentification de Braze | Informations à saisir dans Braze |
|---|---|---|
| Username and password | Braze connects as a Redshift database user with a password. | Username and Password |
Username and password
Braze se connecte à Redshift en tant qu’utilisateur de la base de données, avec un mot de passe. Créez un utilisateur pour Braze :
CREATE USER braze_user PASSWORD '{password}';
Conservez le nom d’utilisateur et le mot de passe en lieu sûr. Vous devrez les saisir dans le tableau de bord de Braze lors de la création de la source.
Étape 3 : Accorder des autorisations à l’utilisateur
Accordez à l’utilisateur que vous avez créé pour Braze l’accès à votre table source :
GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT SELECT ON TABLE USERS_ATTRIBUTES_SYNC TO braze_user;
Il s’agit des autorisations minimales requises pour cet utilisateur. Si vous créez plusieurs intégrations CDI, vous pouvez accorder des autorisations au niveau d’un schéma ou gérer les autorisations à l’aide d’un groupe.
Étape 4 : Autoriser l’accès aux IP de Braze
Si vous disposez d’un pare-feu ou d’autres politiques réseau, vous devez accorder à Braze un accès réseau à votre instance Redshift. Voici un exemple d’endpoint URL Redshift : « example-cluster.ap-northeast-2.redshift.amazonaws.com ».
Quelques points importants à connaître :
- Vous devrez peut-être également modifier vos groupes de sécurité pour permettre à Braze d’accéder à vos données dans Redshift.
- Veillez à autoriser explicitement le trafic entrant provenant des IP du tableau et sur le port utilisé pour interroger votre cluster Redshift (5439 par défaut). Autorisez explicitement la connectivité TCP de Redshift sur ce port, même si les règles entrantes sont définies sur « tout autoriser ».
- L’endpoint du cluster Redshift doit être accessible publiquement pour que Braze puisse se connecter à votre cluster.
- Si vous ne souhaitez pas que votre cluster Redshift soit accessible publiquement, vous pouvez configurer un VPC et une instance EC2 afin d’utiliser un tunnel SSH pour accéder aux données Redshift. Pour plus d’informations, consultez cet article du Knowledge Center d’AWS.
Autorisez l’accès depuis les IP suivantes, qui correspondent à la région de votre tableau de bord de Braze.
Pour les instances US-01, US-02, US-03, US-04, US-05, US-06, US-07, voici les adresses IP correspondantes :
23.21.118.19134.206.23.17350.16.249.952.4.160.21454.87.8.3454.156.35.25152.54.89.23818.205.178.15
Pour l’instance US-08, voici les adresses IP correspondantes :
52.151.246.5152.170.163.18240.76.166.15740.76.166.17040.76.166.16740.76.166.16140.76.166.15640.76.166.16640.76.166.16040.88.51.7452.154.67.1740.76.166.8040.76.166.8440.76.166.8540.76.166.8140.76.166.7140.76.166.14440.76.166.145
Pour l’instance US-10, voici les adresses IP correspondantes :
100.25.232.16435.168.86.17952.7.44.1173.92.153.1835.172.3.12950.19.162.19
Pour les instances EU-01 et EU-02, voici les adresses IP correspondantes :
52.58.142.24252.29.193.12135.158.29.22818.157.135.973.123.166.463.64.27.363.65.88.253.68.144.1883.70.107.88
Pour l’instance AU-01, voici les adresses IP correspondantes :
13.210.1.14513.211.70.15913.238.45.5452.65.73.16754.153.242.23954.206.45.213
Pour l’instance ID-01, voici les adresses IP correspondantes :
108.136.157.246108.137.30.20716.78.128.7116.78.14.13416.78.162.20843.218.73.35
Pour l’instance JP-01, voici les adresses IP correspondantes :
13.159.155.21254.199.221.24113.192.23.1654.250.120.13918.181.114.2323.114.38.100
Pour l’instance KR-01, voici les adresses IP correspondantes :
43.200.215.452.79.67.17552.79.113.603.34.212.9254.116.134.2313.37.197.225
Étape 5 : Créer une nouvelle source dans le tableau de bord de Braze
Dans le tableau de bord de Braze, accédez à Paramètres des données > Ingestion de données cloud > Sources, sélectionnez Ajouter une source de données, puis sélectionnez Amazon Redshift.
Étape 5.1 : Ajouter les informations de connexion Redshift et la table source
Choisissez un nom pour votre source et saisissez vos identifiants et votre configuration Redshift. Sélectionnez la méthode d’authentification que vous avez configurée à l’étape 2, puis saisissez les identifiants correspondants :
- Username and password : Username and Password
Si vous utilisez un tunnel réseau privé, basculez le curseur et saisissez les informations du tunnel. Passez ensuite à l’étape suivante.

Dans le tableau de bord de Braze, le champ Nom de la base de données n’accepte que des lettres (A–Z, a–z), des chiffres (0–9) et des traits de soulignement (_), même si Amazon Redshift prend en charge d’autres caractères dans les identifiants de base de données.
Étape 5.2 : Tester la connexion et se connecter à la source
Sélectionnez ensuite Tester la connexion. Une fois le test réussi, finalisez les paramètres restants et cliquez sur Se connecter à la source. Si la connexion échoue, un message d’erreur s’affiche pour vous aider à résoudre le problème.
Étape 6 : Créer une nouvelle synchronisation dans le tableau de bord de Braze
Accédez à Paramètres des données > Ingestion de données cloud > Synchronisations, puis sélectionnez Créer une synchronisation de données.
Configurer les détails de la synchronisation et définir vos données
Saisissez un nom pour votre synchronisation. Sélectionnez ensuite une source active et un type de données de synchronisation. Puis, sélectionnez Visuel ou Table et saisissez votre table source, ou sélectionnez SQL pour écrire une requête SQL personnalisée. Enfin, sélectionnez Prévisualiser et valider.
Une fois la validation réussie, un aperçu des données s’affiche. Sélectionnez Suivant : Notifications pour continuer. Si la validation échoue, un message d’erreur s’affiche pour vous aider à résoudre le problème.

Vous devez valider une synchronisation avant de passer aux étapes suivantes. Si vous devez quitter la page de création de la synchronisation, sélectionnez Enregistrer comme brouillon pour conserver votre travail en cours.
Ajouter des préférences de notification
Saisissez une ou plusieurs adresses e-mail de contact pour recevoir les notifications d’erreurs de synchronisation. Braze utilise ces coordonnées pour vous informer des erreurs d’intégration, comme une perte inattendue de l’accès à une table.
Les adresses e-mail de contact reçoivent uniquement les notifications d’erreurs globales ou au niveau de la synchronisation, par exemple des tables manquantes ou des problèmes d’autorisations. Elles ne sont pas notifiées des problèmes au niveau des lignes. Les erreurs globales signalent des problèmes critiques de connexion qui empêchent l’exécution des synchronisations.
Il peut notamment s’agir des problèmes suivants :
- Problèmes de connectivité
- Manque de ressources
- Problèmes d’autorisations
- Espace insuffisant pour le niveau de catalogue (synchronisations de catalogues uniquement)
Définir la planification
Enfin, configurez votre synchronisation comme ponctuelle ou récurrente.
Les synchronisations ponctuelles s’exécutent uniquement lorsque vous sélectionnez Synchroniser maintenant dans le tableau de bord ou que vous appelez l’endpoint Déclencher une synchronisation.
Les synchronisations récurrentes peuvent s’exécuter aussi souvent que toutes les 5 minutes ou aussi rarement qu’une fois par mois. Par défaut, l’intervalle le plus court que vous pouvez définir dans le tableau de bord est de 15 minutes, ce qui vous aide à maîtriser les coûts de calcul de votre entrepôt de données et le volume de requêtes. Pour synchroniser jusqu’à toutes les 5 minutes, contactez le support Braze ou votre gestionnaire de la satisfaction client. Braze planifie les synchronisations récurrentes en UTC.

Vous devez valider une intégration avant qu’elle ne puisse passer de l’état Brouillon à l’état Actif. Si vous fermez la page de création, votre intégration est enregistrée et vous pouvez revenir sur la page de détails pour la modifier et la valider.
Exécuter la synchronisation
Une fois activée, votre synchronisation s’exécute selon la planification définie lors de la configuration. Si vous souhaitez exécuter la synchronisation en dehors de sa planification ou récupérer les données les plus récentes, sélectionnez Synchroniser maintenant. Cette exécution n’a aucune incidence sur les futures synchronisations planifiées. Pour lancer automatiquement une synchronisation lorsque vos données sont mises à jour, appelez l’endpoint Déclencher une synchronisation depuis votre pipeline.
Configurer des intégrations ou des utilisateurs supplémentaires (facultatif)
Vous pouvez configurer plusieurs intégrations avec Braze. Lorsque vous créez des synchronisations supplémentaires, vous pouvez réutiliser des identifiants existants si vous vous connectez au même compte Redshift.
Si vous réutilisez le même utilisateur dans plusieurs intégrations, vous ne pourrez pas le supprimer dans le tableau de bord de Braze tant qu’il n’aura pas été retiré de toutes les synchronisations actives.
Utiliser Redshift comme source connectée
Une source connectée est une alternative sans copie à la synchronisation des données dans Braze. Braze interroge directement votre instance Redshift pour créer des segments CDI, sans copier les données sous-jacentes. Pour les concepts, les limites et les incidences sur les coûts, consultez Sources connectées.
Étape 1 : Créer l’utilisateur et accorder les autorisations
Créez un utilisateur pour Braze avec l’une des méthodes décrites à l’étape 2 : Configurer l’authentification. Accordez-lui ensuite les autorisations suivantes :
GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT CREATE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT SELECT ON TABLE USERS_ATTRIBUTES_SYNC TO braze_user;
Créez un utilisateur dédié à votre source connectée. Cet utilisateur sert à générer la liste des tables disponibles dans vos extensions de segments CDI et à interroger les tables sources pour créer de nouveaux segments. Une fois la source connectée créée, Braze détecte le nom et la description de toutes les tables accessibles à l’utilisateur dans le schéma source. Si vous créez plusieurs intégrations CDI, vous pouvez accorder des autorisations au niveau d’un schéma ou gérer les autorisations à l’aide d’un groupe.
Vous pouvez choisir d’accorder l’accès à toutes les tables d’un schéma, ou d’accorder des privilèges uniquement sur certaines tables. Toutes les tables auxquelles le rôle Braze a accès peuvent être interrogées dans l’extension de segment CDI. Pensez à accorder à l’utilisateur l’accès à toute nouvelle table dès sa création, ou définissez des autorisations par défaut pour l’utilisateur.
L’autorisation create table est requise pour que Braze puisse créer une table contenant les résultats de la requête de votre extension de segment CDI avant de mettre à jour le segment dans Braze. Braze crée une table temporaire par segment, qui n’est conservée que pendant la mise à jour du segment par Braze.
La configuration de l’accès réseau est identique à celle de l’étape 4.
Étape 2 : Créer la source connectée dans Braze
Accédez à Paramètres des données > Ingestion de données cloud > Sources connectées, sélectionnez Ajouter une source de données, puis sélectionnez Amazon Redshift.
Dans Configurer la source, saisissez les informations suivantes :
- Identifiants : URL de l’hôte Redshift, Port et les champs correspondant à votre méthode d’authentification. Saisissez Username and Password.
- Configuration : Base de données et Schéma
Si nécessaire, activez Se connecter avec un tunnel SSH et saisissez l’Hôte du tunnel, le Port du tunnel et le Nom d’utilisateur du tunnel.
Choisissez un nom pour la source connectée. Ce nom apparaît dans la liste des sources disponibles lorsque vous créez une nouvelle extension de segment CDI.
Configurez une durée d’exécution maximale pour cette source. Braze interrompt automatiquement toute requête qui dépasse cette durée. La durée d’exécution maximale autorisée est de 60 minutes ; une durée plus courte réduit les coûts engagés sur votre compte Redshift. Ce paramètre s’applique aux requêtes exécutées via cette source, y compris les synchronisations et les extensions de segments CDI qui l’utilisent.
Étape 3 : Finaliser la configuration Redshift
Si l’option Se connecter avec un tunnel SSH est sélectionnée dans vos identifiants, notez la clé publique RSA affichée à l’étape Tester la connexion et ajoutez-la à l’utilisateur du tunnel SSH.
Après avoir ajouté la clé à l’utilisateur, sélectionnez Tester la connexion dans Braze, puis Terminé. Votre source connectée est désormais créée et prête à être utilisée dans les extensions de segments CDI.
Vous pouvez configurer plusieurs sources connectées avec Braze, mais chaque source doit être configurée pour se connecter à un schéma différent. Lorsque vous créez des sources supplémentaires, vous pouvez réutiliser des identifiants existants si vous vous connectez au même compte Redshift.
Formater un payload à partir de colonnes existantes
Si vous préférez stocker chaque attribut dans sa propre colonne en interne, vous devez convertir ces colonnes en chaîne de caractères JSON pour alimenter la synchronisation avec Braze. Utilisez cette requête dans Redshift pour formater les colonnes sources en champs CDI.
CREATE TABLE "EXAMPLE_USER_DATA"
(attribute_1 string,
attribute_2 string,
attribute_3 number,
my_user_id string);
SELECT
CURRENT_TIMESTAMP as UPDATED_AT,
my_user_id as EXTERNAL_ID,
JSON_SERIALIZE(
OBJECT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'yet_another_attribute',
attribute_3)
) as PAYLOAD FROM "EXAMPLE_USER_DATA";
Pour d’autres conseils d’optimisation, consultez Bonnes pratiques de l’ingestion de données cloud.
Résolution des problèmes
Le test de connexion est lent
Le test de connexion s’exécute sur votre entrepôt de données : augmenter la capacité de l’entrepôt peut donc améliorer sa vitesse. L’utilisation d’une instance SQL serverless réduit le temps de démarrage et améliore le débit des requêtes, mais peut entraîner des coûts d’intégration légèrement plus élevés.
Erreur « Permission denied for relation {table_name} »
Si vous recevez cette erreur :
- Accordez l’autorisation
usagesur le schéma à cet utilisateur. - Accordez l’autorisation
selectsur la table à cet utilisateur.
Erreur de création de connexion
Si vous recevez cette erreur, vérifiez que l’endpoint et le port Redshift sont corrects.
Erreur de création du tunnel SSH
Si vous recevez cette erreur :
- Vérifiez que la clé publique affichée dans votre tableau de bord de Braze se trouve bien sur l’hôte EC2 utilisé pour le tunnel SSH.
- Vérifiez que votre nom d’utilisateur est correct.
- Vérifiez que le tunnel SSH est correct.
Identifiant de snapshot non valide
Si Braze renvoie une erreur Invalid snapshot identifier lors de l’étape Tester la connexion ou de la configuration de la synchronisation, Redshift ne parvient pas à résoudre la référence de snapshot utilisée lors de l’interrogation de votre objet source.
Dans Redshift, un snapshot est une sauvegarde d’un cluster à un instant donné. Chaque snapshot possède un identifiant unique que Redshift utilise pour référencer cet état de sauvegarde. Pour plus d’informations, consultez Snapshots et sauvegardes Amazon Redshift.
Cette erreur peut se produire lorsque des métadonnées changent pendant que Braze valide l’objet source, par exemple lors d’opérations de copie de snapshot, de restauration ou de réplication. Pour plus d’informations, consultez Copier des snapshots vers une autre région AWS et Restaurer un cluster à partir d’un snapshot.
Pour résoudre ce problème :
- Vérifiez les paramètres de la source dans Braze, notamment l’endpoint du cluster, la base de données, le schéma et le nom de l’objet.
- Exécutez la même requête directement dans Redshift pour confirmer que la table ou la vue est lisible et stable.
- Réessayez une fois les opérations de snapshot, de restauration, de redimensionnement ou de réplication en cours terminées.
- Si le problème persiste, interrogez une vue matérialisée plutôt qu’une table de base qui change fréquemment.
Une vue matérialisée stocke des résultats de requête précalculés que vous pouvez actualiser selon une planification, ce qui peut rendre les lectures plus stables pour les synchronisations CDI. Pour plus d’informations, consultez Vues matérialisées dans Amazon Redshift.
Exemple :
CREATE MATERIALIZED VIEW ingestion.users_attributes_mv AS
SELECT updated_at, external_id, alias_label, alias_name, braze_id, email, phone, payload
FROM ingestion.users_attributes_sync;
REFRESH MATERIALIZED VIEW ingestion.users_attributes_mv;
Après avoir créé la vue matérialisée, utilisez son nom comme objet source dans votre synchronisation CDI Braze à la place de la table de base.
Où exécuter les vérifications SQL
Exécutez les vérifications de validation directement dans l’éditeur SQL de Redshift, sur la même table ou vue que celle utilisée par votre intégration CDI. Utilisez Query Editor v2. Pour plus d’informations, consultez Utilisation d’Amazon Redshift Query Editor v2.
Pages connexes
- Configuration de la table pour connaître les colonnes requises et le formatage du payload
- Bonnes pratiques pour la planification des synchronisations et l’utilisation efficace des points de données
- Journaux de synchronisation et observabilité pour surveiller les exécutions de synchronisation
- FAQ pour les questions fréquentes communes à toutes les sources