Synchroniser les données de compte à l’aide de CDI
Découvrez comment synchroniser les données de votre compte Braze à l’aide de CDI.
Les objets de compte sont en version bêta et sont nécessaires pour utiliser cette fonctionnalité. Contactez votre Account Manager Braze si vous souhaitez participer à la bêta.
Conditions préalables
Avant de pouvoir synchroniser les données de votre compte à l’aide de CDI, vous devez configurer le schéma de vos comptes.
Effectuez les mises à jour de votre schéma de compte uniquement lorsque la synchronisation est suspendue ou non planifiée, afin d’éviter tout conflit entre les données de votre entrepôt de données et le schéma dans Braze.
Fonctionnement de la synchronisation
- Chaque synchronisation importe les lignes dont la valeur
UPDATED_ATest postérieure à l’horodatage de la dernière synchronisation. Les lignes situées exactement à l’horodatage limite peuvent être resynchronisées si de nouvelles lignes partagent ce même horodatage. Pour en savoir plus, consultez Éviter la resynchronisation de lignes avec des horodatages en double. - Les données issues de l’intégration créent ou mettent à jour des comptes en fonction de l’
idfourni. - Si
DELETEDesttrue, le compte est supprimé. - La synchronisation ne consomme pas de points de donnée, mais toutes les données synchronisées sont comptabilisées dans l’utilisation totale de vos comptes, mesurée par le volume total de données stockées — il n’est pas nécessaire de se limiter aux seules données modifiées.
- Les champs absents de votre schéma de comptes sont ignorés ; mettez à jour le schéma avant de synchroniser de nouveaux champs.
- Vous pouvez actualiser, reprendre ou suspendre une synchronisation en survolant le nom de la synchronisation et en sélectionnant l’action correspondante.
Synchroniser les données de votre compte
Vous pouvez synchroniser les données de votre compte à l’aide de CDI via un entrepôt de données ou un stockage de fichiers.
Pour intégrer votre source de données à votre entrepôt de données :
- Créez une table source dans Snowflake. Utilisez les noms fournis dans l’exemple ou choisissez vos propres noms de base de données, de schéma et de table. Vous pouvez également utiliser une vue ou une vue matérialisée à la place d’une table.
1 2 3 4 5 6 7 8 9 10 11 12 13
CREATE DATABASE BRAZE_CLOUD_PRODUCTION; CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION; CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.ACCOUNTS_SYNC ( UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(), --ID of the account to be created or updated ID VARCHAR(16777216) NOT NULL, --Name of the account to be created or updated NAME VARCHAR(16777216) NOT NULL, --Account fields and values that should be added or updated PAYLOAD VARCHAR(16777216) NOT NULL, --The account associated with this ID should be deleted DELETED BOOLEAN );
- Créez un rôle, un entrepôt et un utilisateur, puis accordez les autorisations. Si vous disposez déjà d’identifiants provenant d’une autre synchronisation, vous pouvez les réutiliser — assurez-vous simplement qu’ils ont accès à la table des comptes.
1 2 3 4 5 6 7 8 9 10 11
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.ACCOUNTS_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;
- Si vous utilisez des politiques réseau, ajoutez les adresses IP de Braze à la liste autorisée afin que le service CDI puisse se connecter. Pour la liste des adresses IP, consultez Cloud Data Ingestion.
- Dans le tableau de bord de Braze, accédez à Data Settings > Cloud Data Ingestion et créez une nouvelle synchronisation.
- Saisissez les détails de connexion (ou réutilisez des identifiants existants), puis ajoutez la table source.
- Sélectionnez le type de synchronisation Accounts, puis saisissez le nom de l’intégration et la planification.
- Choisissez la fréquence de synchronisation.
- Ajoutez la clé publique du tableau de bord à l’utilisateur que vous avez créé. Cela nécessite un utilisateur disposant d’un accès
SECURITYADMINou supérieur dans Snowflake. - Sélectionnez Test Connection pour confirmer la configuration.
- Une fois terminé, enregistrez la synchronisation.
- Créez une table source dans Redshift. Utilisez les noms fournis dans l’exemple ou choisissez vos propres noms de base de données, de schéma et de table. Vous pouvez également utiliser une vue ou une vue matérialisée à la place d’une table.
1 2 3 4 5 6 7 8 9 10 11 12 13
CREATE DATABASE BRAZE_CLOUD_PRODUCTION; CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION; CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.ACCOUNTS_SYNC ( updated_at timestamptz default sysdate not null, --ID of the account to be created or updated id varchar not null, --Name of the account to be created or updated name varchar not null, --Account fields and values that should be added or updated payload varchar(max), --The account associated with this ID should be deleted deleted boolean )
-
Créez un utilisateur et accordez les autorisations. Si vous disposez déjà d’identifiants provenant d’une autre synchronisation, vous pouvez les réutiliser — assurez-vous simplement qu’ils ont accès à la table des comptes.
1 2 3
CREATE USER braze_user PASSWORD '{password}'; GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user; GRANT SELECT ON TABLE ACCOUNTS_SYNC TO braze_user;
- Si vous disposez d’un pare-feu ou de politiques réseau, autorisez Braze à accéder à votre instance Redshift. Pour la liste des adresses IP, consultez Cloud Data Ingestion.
- (Facultatif) Créez un nouveau projet ou jeu de données pour votre table source.
1
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
- Créez la table source pour votre intégration CDI :
1 2 3 4 5 6 7 8
CREATE TABLE `BRAZE-CLOUD-PRODUCTION.INGESTION.ACCOUNTS_SYNC` ( updated_at TIMESTAMP DEFAULT current_timestamp, id STRING, name STRING, payload JSON, deleted BOOLEAN );
Référez-vous aux informations suivantes lors de la création de votre table source :
Nom du champ Type Requis ? UPDATED_ATTimestamp Oui PAYLOADJSON Oui IDString Oui NAMEString Oui DELETEDBoolean Facultatif
-
Créez un utilisateur et accordez les autorisations. Si vous disposez déjà d’identifiants provenant d’une autre synchronisation, vous pouvez les réutiliser à condition qu’ils aient accès à la table des comptes.
Autorisation Objectif BigQuery Connection User Permet à Braze de se connecter. BigQuery User Permet à Braze d’exécuter des requêtes, de lire les métadonnées et de lister les tables. BigQuery Data Viewer Permet à Braze de consulter les jeux de données et leur contenu. BigQuery Job User Permet à Braze d’exécuter des tâches. Après avoir accordé les autorisations, générez une clé JSON. Consultez Keys create and delete pour les instructions. Vous la téléverserez ultérieurement dans le tableau de bord de Braze.
- Si vous utilisez des politiques réseau, autorisez les adresses IP de Braze à accéder à votre instance BigQuery. Pour la liste des adresses IP, consultez Cloud Data Ingestion.
- Créez un catalogue ou un schéma pour votre table source.
1
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
- Créez la table source pour votre intégration CDI :
1 2 3 4 5 6 7 8
CREATE TABLE `BRAZE-CLOUD-PRODUCTION.INGESTION.ACCOUNTS_SYNC` ( updated_at TIMESTAMP DEFAULT current_timestamp(), id STRING, name STRING, payload STRING, STRUCT, or MAP, deleted BOOLEAN );
Référez-vous aux informations suivantes lors de la création de votre table source :
Nom du champ Type Requis ? UPDATED_ATTimestamp Oui PAYLOADString, Struct, or Map Oui IDString Oui NAMEString Oui DELETEDBoolean Facultatif
- Créez un jeton d’accès personnel dans Databricks :
- Sélectionnez votre nom d’utilisateur, puis sélectionnez User Settings.
- Dans l’onglet Access tokens, sélectionnez Generate new token.
- Ajoutez un commentaire pour identifier le jeton, par exemple « Braze CDI ».
- Laissez le champ Lifetime (days) vide pour ne pas définir d’expiration, puis sélectionnez Generate.
- Copiez et enregistrez le jeton en lieu sûr pour l’utiliser dans le tableau de bord de Braze.
- Si vous utilisez des politiques réseau, autorisez les adresses IP de Braze à accéder à votre instance Databricks. Pour la liste des adresses IP, consultez Cloud Data Ingestion.
- Créez une ou plusieurs tables pour votre intégration CDI avec les champs suivants :
1 2 3 4 5 6 7 8 9
CREATE OR ALTER TABLE [warehouse].[schema].[CDI_table_name] ( UPDATED_AT DATETIME2(6) NOT NULL, PAYLOAD VARCHAR NOT NULL, ID VARCHAR NOT NULL, NAME VARCHAR NOT NULL, DELETED BIT ) GO
- Créez un principal de service et accordez les autorisations. Si vous disposez déjà d’identifiants provenant d’une autre synchronisation, vous pouvez les réutiliser — assurez-vous simplement qu’ils ont accès à la table des comptes.
- Si vous utilisez des politiques réseau, autorisez les adresses IP de Braze à accéder à votre instance Microsoft Fabric. Pour la liste des adresses IP, consultez Cloud Data Ingestion.
Pour synchroniser les données de compte depuis un stockage de fichiers, créez un fichier source avec les champs suivants.
| Champ | Requis ? | Description |
|---|---|---|
ID |
Oui | ID du compte à mettre à jour ou à créer |
NAME |
Oui | Nom du compte |
PAYLOAD |
Oui | Chaîne de caractères JSON des champs à synchroniser vers le compte dans Braze |
DELETED |
Facultatif | Valeur booléenne indiquant la suppression du compte dans Braze |
UPDATED_AT |
*Non pris en charge | Le stockage de fichiers ne prend pas en charge les colonnes UPDATED_AT |
Les noms de fichiers doivent respecter les règles AWS et être uniques. Ajoutez des horodatages pour garantir l’unicité. Pour en savoir plus sur la synchronisation Amazon S3, consultez Intégrations de stockage de fichiers.
Les exemples suivants montrent des formats JSON et CSV valides pour synchroniser les données de compte depuis un stockage de fichiers.
{"id":"s3-qa-0","name":"account0","payload":"{\"attribute_0\": \"GT896\", \"attribute_1\": 74, \"attribute_2\": true, \"retention\": {\"previous_purchases\": 21, \"vip\": false}, \"last_visit\": \"2023-08-08T16:03:26.600803\"}"}
{"id":"s3-qa-1","name":"account1","payload":"{\"attribute_0\": \"GT896\", \"attribute_1\": 74, \"attribute_2\": true, \"retention\": {\"previous_purchases\": 21, \"vip\": false}, \"last_visit\": \"2023-08-08T16:03:26.600803\"}","deleted":true}
{"id":"s3-qa-2","name":"account2","payload":"{\"attribute_0\": \"GT896\", \"attribute_1\": 74, \"attribute_2\": true, \"retention\": {\"previous_purchases\": 21, \"vip\": false}, \"last_visit\": \"2023-08-08T16:03:26.600803\"}","deleted":false}
{"id":"s3-qa-3","name":"account3","payload":"{\"attribute_0\": \"GT896\", \"attribute_1\": 74, \"attribute_2\": true, \"retention\": {\"previous_purchases\": 21, \"vip\": false}, \"last_visit\": \"2023-08-08T16:03:26.600803\"}"}
Chaque ligne de votre fichier source doit contenir du JSON valide, sinon le fichier sera ignoré.
1
2
3
ID,NAME,PAYLOAD,DELETED
85,"ACCOUNT_1","{""region"": ""APAC"", ""employees"": 850}",TRUE
1,"ACCOUNT_2","{""region"": ""EMEA"", ""employees"": 10000}",FALSE
1
2
3
ID,NAME,PAYLOAD
85,"ACCOUNT_1","{""region"": ""APAC"", ""employees"": 850}"
1,"ACCOUNT_2","{""region"": ""EMEA"", ""employees"": 10000}"
Créer une vue de synchronisation
La création d’une vue de synchronisation dans votre entrepôt de données permet à la source de s’actualiser automatiquement sans avoir à réécrire de requêtes supplémentaires.
Par exemple, si vous disposez d’une table de données de compte appelée account_details_1 avec account_id, account_name et trois attributs supplémentaires, vous pouvez créer une vue de synchronisation comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE VIEW BRAZE_CLOUD_PRODUCTION.INGESTION.ACCOUNTS_SYNC AS
SELECT
CURRENT_TIMESTAMP as UPDATED_AT,
account_id as id,
account_name as name,
TO_JSON(
OBJECT_CONSTRUCT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'attribute_3',
attribute_3)
)as PAYLOAD FROM "account_details_1";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.ACCOUNTS_SYNC AS
SELECT
CURRENT_TIMESTAMP as UPDATED_AT,
account_id as id,
account_name as name,
JSON_SERIALIZE(
OBJECT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'attribute_3',
attribute_3)
) as PAYLOAD FROM "account_details_1";
1
2
3
4
5
6
7
8
9
10
11
12
CREATE view IF NOT EXISTS BRAZE_CLOUD_PRODUCTION.INGESTION.ACCOUNTS_SYNC AS (SELECT
last_updated as UPDATED_AT,
account_id as ID,
account_name as NAME,
TO_JSON(
STRUCT(
attribute_1,
attribute_2,
attribute_3,
)
) as PAYLOAD
FROM `BRAZE_CLOUD_PRODUCTION.INGESTION.account_details_1`);
1
2
3
4
5
6
7
8
9
10
11
12
CREATE view IF NOT EXISTS BRAZE_CLOUD_PRODUCTION.INGESTION.ACCOUNTS_SYNC AS (SELECT
last_updated as UPDATED_AT,
account_id as ID,
account_name as NAME,
TO_JSON(
STRUCT(
attribute_1,
attribute_2,
attribute_3,
)
) as PAYLOAD
FROM `BRAZE_CLOUD_PRODUCTION.INGESTION.account_details_1`);
1
2
3
4
5
6
7
8
CREATE VIEW [BRAZE_CLOUD_PRODUCTION].[INGESTION].[ACCOUNTS_SYNC]
AS SELECT
account_id as ID,
account_name as NAME,
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].[account_details_1] ;
Modifier cette page sur GitHub