Ingestion de données cloud pour Snowflake
Cette page présente tout ce dont vous avez besoin pour synchroniser des données de Snowflake vers Braze à l’aide de l’ingestion de données cloud (CDI) : les ressources à créer dans Snowflake, la connexion de la source et la création d’une synchronisation dans Braze, la table source de chaque type de données, ainsi que la résolution des problèmes propres à Snowflake.
Aperçu de la configuration
- Dans votre instance Snowflake, configurez les tables ou les vues que vous souhaitez synchroniser avec Braze.
- Configurez un rôle et un entrepôt pour Braze.
- Configurez un utilisateur Snowflake pour Braze avec l’une des méthodes d’authentification prises en charge.
- Créez une nouvelle source Snowflake dans le tableau de bord de Braze, puis finalisez l’authentification dans Snowflake.
- Créez une synchronisation dans le tableau de bord de Braze, validez l’intégration et lancez la synchronisation.

Le guide de démarrage rapide Snowflake fournit des exemples de code et détaille les étapes nécessaires pour créer un pipeline automatisé utilisant Snowflake Streams et la CDI afin de synchroniser des données avec Braze.
É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 Visuel ou d’écrire une requête avec SQL à l’étape Définition des données, vous pouvez utiliser une table ou une vue existante. Dans ce cas, ignorez l’étape de création de la table et accordez à Braze un accès en lecture aux tables ou 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 de 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 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 DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC (
UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
--at least one of external_id, alias_name and alias_label, email, phone, or braze_id is required
EXTERNAL_ID VARCHAR(16777216),
--if using user alias, both alias_name and alias_label are required
ALIAS_LABEL VARCHAR(16777216),
ALIAS_NAME VARCHAR(16777216),
--braze_id can only be used to update existing users created through the Braze SDK
BRAZE_ID VARCHAR(16777216),
--If you include both email and phone, email is used as the primary identifier
EMAIL VARCHAR(16777216),
PHONE VARCHAR(16777216),
PAYLOAD VARCHAR(16777216) NOT NULL
);
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 payload, consultez Configuration de la table.
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, 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 le workflow complet des catalogues, consultez Synchroniser et supprimer des données de catalogue.
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
);
Accordez au rôle Braze l’accès à cette table, en plus de vos autres tables sources :
GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC TO ROLE BRAZE_INGESTION_ROLE;
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 de la synchronisation. Par exemple, si vous disposez d’une table de données produits (product_catalog_1) avec product_id et trois attributs supplémentaires, vous pouvez synchroniser la vue suivante :
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";
Les déclencheurs Canvas alimentent la personnalisation zero-copy. Pour la configuration du Canvas de destination et les points à prendre en compte, consultez Personnalisation zero-copy.
CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC (
UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
--at least one of external_id or alias_name and alias_label is required
EXTERNAL_ID VARCHAR(16777216),
--if using user alias, both alias_name and alias_label are required
ALIAS_LABEL VARCHAR(16777216),
ALIAS_NAME VARCHAR(16777216),
PROPERTIES VARCHAR(16777216)
);
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 au rôle Braze l’accès à cette table :
GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC TO ROLE BRAZE_INGESTION_ROLE;
Pour commencer, sélectionnez le type de données Déclencheurs 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 OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_DELETES (
UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
--at least one of external_id, alias_name and alias_label, or braze_id is required
EXTERNAL_ID VARCHAR(16777216),
--if using user alias, both alias_name and alias_label are required
ALIAS_LABEL VARCHAR(16777216),
ALIAS_NAME VARCHAR(16777216),
--braze_id can only be used to update existing users created through the Braze SDK
BRAZE_ID VARCHAR(16777216)
);
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 le rôle et l’entrepôt
Étape 2.1 : Configurer le rôle et les autorisations de base de données
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.USERS_ATTRIBUTES_SYNC TO ROLE BRAZE_INGESTION_ROLE;
Modifiez les noms si nécessaire, mais les autorisations doivent correspondre à l’exemple précédent.
Étape 2.2 : Configurer l’entrepôt et donner l’accès au rôle Braze
CREATE WAREHOUSE BRAZE_INGESTION_WAREHOUSE;
GRANT USAGE ON WAREHOUSE BRAZE_INGESTION_WAREHOUSE TO ROLE BRAZE_INGESTION_ROLE;

L’option auto-resume doit être activée sur l’entrepôt. Si ce n’est pas le cas, accordez à Braze des privilèges OPERATE supplémentaires sur l’entrepôt afin que Braze puisse l’activer lors de l’exécution de la requête.
Étape 2.3 : Autoriser les IP de Braze dans la politique réseau de Snowflake (facultatif)
Selon la configuration de votre compte Snowflake, vous devrez peut-être autoriser les adresses IP suivantes dans votre politique réseau Snowflake. Pour plus d’informations sur cette opération, consultez la documentation Snowflake sur la modification d’une politique réseau.
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 3 : Configurer l’authentification
Braze se connecte à Snowflake en tant qu’utilisateur Snowflake disposant du rôle défini à l’étape 2. Configurez cet utilisateur avec l’une des méthodes d’authentification suivantes :
| Méthode | Mode d’authentification de Braze | Informations à saisir dans Braze |
|---|---|---|
| Key pair authentication | Braze generates an RSA key pair and connects as a Snowflake user that has the public key assigned. | Username and Role |
Key pair authentication
Avec l’authentification par paire de clés, Braze génère une paire de clés RSA lorsque vous enregistrez vos identifiants dans le tableau de bord de Braze. Vous attribuez ensuite la clé publique à un utilisateur Snowflake que Braze utilise pour se connecter.
Configurer l’utilisateur
Créez un utilisateur pour Braze et attribuez-lui le rôle que vous avez créé :
CREATE USER BRAZE_INGESTION_USER;
GRANT ROLE BRAZE_INGESTION_ROLE TO USER BRAZE_INGESTION_USER;

Lorsque vous connectez différents espaces de travail au même compte Snowflake, vous devez créer un utilisateur unique pour chaque espace de travail Braze dans lequel vous créez une intégration. Au sein d’un même espace de travail, vous pouvez réutiliser le même utilisateur pour plusieurs intégrations, mais la création de l’intégration échoue si un même utilisateur du compte Snowflake est utilisé dans plusieurs espaces de travail.
Ajouter la clé publique à l’utilisateur
Effectuez cette étape après avoir saisi vos identifiants dans le tableau de bord de Braze et sélectionné Enregistrer les identifiants. Braze génère la paire de clés et affiche la clé publique. Ajoutez la clé publique à l’utilisateur que vous avez créé pour Braze :
ALTER USER BRAZE_INGESTION_USER SET RSA_PUBLIC_KEY='MIIBIjANBgkqhkiG9w0BA...';
L’attribution de la clé nécessite un accès SECURITYADMIN ou supérieur dans Snowflake. Pour plus d’informations, consultez la documentation de Snowflake.
Pour effectuer une rotation des clés, accédez à Gestion de l’accès aux données dans Ingestion de données cloud, puis sélectionnez Générer une nouvelle clé pour le compte. Attribuez ensuite la nouvelle clé publique à l’utilisateur. Si vous réutilisez le même utilisateur et le même rôle pour plusieurs intégrations, vous n’avez pas besoin d’ajouter à nouveau la clé publique.
Étape 4 : 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 Snowflake.
Étape 4.1 : Ajouter les informations de connexion Snowflake
Choisissez un nom pour votre source et saisissez vos identifiants et votre configuration Snowflake, puis passez à l’étape suivante. Sélectionnez la méthode d’authentification configurée à l’étape 3 et saisissez les identifiants correspondants :
- Key pair authentication : Username and Role
Avant de continuer, vérifiez la valeur que vous saisissez dans Localisateur de compte Snowflake.
Dans le champ Localisateur de compte Snowflake, saisissez votre identifiant de compte Snowflake. Saisissez uniquement la valeur de l’identifiant de compte, par exemple myorganization-myaccount. N’incluez pas https://, .snowflakecomputing.com ni aucun chemin.
Pour trouver votre identifiant de compte Snowflake :
- Dans Snowsight, sélectionnez le menu de votre compte.
- Sélectionnez View account details.
- Copiez la valeur Account identifier.
- Si vous copiez la valeur depuis une URL Snowflake, utilisez uniquement la partie qui précède
.snowflakecomputing.com.
Étape 4.2 : Finaliser l’authentification dans Snowflake
Après avoir saisi vos identifiants et votre configuration, sélectionnez Enregistrer les identifiants. Pour l’authentification par paire de clés, Braze génère une paire de clés RSA et affiche la clé publique. Retournez dans Snowflake et ajoutez la clé publique à l’utilisateur que vous avez créé pour Braze.
Étape 5 : 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 fermer 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 puisse passer de l’état Brouillon à l’état Actif. Si vous fermez la page de création, votre intégration est enregistrée : vous pouvez revenir sur la page de détails pour apporter des modifications 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. Pour 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 synchronisations planifiées à venir. 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 Snowflake.
Si vous réutilisez le même utilisateur et le même rôle pour plusieurs intégrations, vous n’avez pas besoin d’ajouter à nouveau la clé publique.
Utiliser Snowflake comme source connectée
Une source connectée est une alternative zero-copy à la synchronisation des données dans Braze. Braze interroge directement votre instance Snowflake pour créer des segments CDI, sans copier les données sous-jacentes. Pour les concepts, les limites et les implications en matière de coûts, consultez Sources connectées.
Étape 1 : Créer un rôle et accorder les autorisations
Créez un rôle destiné à votre source connectée. Ce rôle 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écouvre les noms et la description de toutes les tables accessibles à l’utilisateur dans le schéma source.
Vous pouvez accorder l’accès à toutes les tables d’un schéma, ou 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.
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, et cette table n’existe que pendant la mise à jour du segment.
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 CREATE TABLE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
-- grant access to all current and future tables or views in the schema
GRANT SELECT ON ALL TABLES IN SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
GRANT SELECT ON FUTURE TABLES IN SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
-- grant access to specific tables or views in the schema
GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC TO ROLE BRAZE_INGESTION_ROLE;
La configuration de l’entrepôt est identique à celle de l’étape 2.2, et celle de la politique réseau à celle de l’étape 2.3. Configurez l’utilisateur avec lequel Braze se connecte à l’aide de l’une des méthodes décrites à l’étape 3 : Configurer l’authentification.
É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 Snowflake.
Dans Configurer la source, saisissez les informations suivantes :
- Identifiants : Localisateur de compte et les champs correspondant à votre méthode d’authentification. Saisissez Username and Role.
- Configuration : Entrepôt, Base de données et Schéma
Pour l’authentification par paire de clés, si vous créez de nouveaux identifiants Snowflake, sélectionnez Enregistrer les identifiants et générer la clé RSA avant de tester la connexion.
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 Snowflake. 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.
Pour l’authentification par paire de clés, notez la clé publique RSA affichée à l’étape Tester la connexion. Vous en aurez besoin pour finaliser l’intégration dans Snowflake.
Étape 3 : Finaliser la configuration Snowflake
Pour l’authentification par paire de clés, ajoutez la clé publique notée à l’étape précédente à votre utilisateur dans Snowflake, comme décrit dans Ajouter la clé publique à l’utilisateur. Cela permet à Braze de se connecter à Snowflake.
Une fois l’authentification terminée dans Snowflake, 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 connexions supplémentaires, vous pouvez réutiliser des identifiants existants si vous vous connectez au même compte Snowflake. Si vous réutilisez le même utilisateur et le même rôle pour plusieurs intégrations, vous n’avez pas besoin d’ajouter à nouveau la clé publique.
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 Snowflake 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,
TO_JSON(
OBJECT_CONSTRUCT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'yet_another_attribute',
attribute_3)
)as PAYLOAD FROM "EXAMPLE_USER_DATA";
Pour supprimer complètement un attribut plutôt que de le définir sur null, utilisez TO_JSON(OBJECT_CONSTRUCT_KEEP_NULL(...)).
Pour d’autres conseils d’optimisation, consultez les 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 de connexion à l’instance Snowflake : Incoming request with IP is not allowed to access Snowflake
Essayez d’ajouter les IP officielles de Braze à votre liste d’IP autorisées. Pour plus d’informations, consultez Autoriser les IP de Braze dans la politique réseau de Snowflake.
Erreur d’exécution SQL due à la configuration client : 002003 (42S02): SQL compilation error: does not exist or not authorized
Si la table n’existe pas, créez-la. Si la table existe, vérifiez que l’utilisateur et le rôle disposent des autorisations nécessaires pour la lire.
Impossible d’utiliser le schéma
Si vous recevez cette erreur, accordez l’accès à ce schéma à l’utilisateur ou au rôle concerné.
Impossible d’utiliser le rôle
Si vous recevez cette erreur, autorisez cet utilisateur à utiliser le rôle concerné.
Accès utilisateur désactivé
Si vous recevez cette erreur, autorisez cet utilisateur à accéder à votre compte Snowflake.
Erreur de connexion à l’instance Snowflake avec la clé actuelle et l’ancienne clé
Si vous recevez cette erreur, assurez-vous que l’utilisateur utilise la clé publique actuelle telle qu’affichée dans votre tableau de bord de Braze. Pour effectuer une rotation des clés, consultez Ajouter la clé publique à l’utilisateur.
Où exécuter les vérifications SQL
Exécutez les vérifications de validation directement dans l’éditeur SQL de Snowflake, sur la table ou la vue utilisée par votre intégration CDI. Accédez à Projects > Worksheets. Pour plus d’informations, consultez Snowflake Worksheets.
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