Sincronizar los datos de la cuenta mediante CDI
Aprende a sincronizar los datos de tu cuenta de Braze utilizando CDI.
Los objetos de cuenta están en fase beta y son necesarios para utilizar esta característica. Ponte en contacto con tu director de cuentas de Braze si te interesa participar en la beta.
Requisitos previos
Antes de poder sincronizar los datos de tu cuenta mediante CDI, deberás configurar el esquema de tus cuentas.
Realiza actualizaciones en el esquema de tu cuenta solo cuando la sincronización esté pausada o no esté planificada, para evitar conflictos entre los datos de tu almacén de datos y el esquema en Braze.
Cómo funciona la sincronización
- Cada sincronización importa filas donde
UPDATED_ATes posterior a la última marca de tiempo sincronizada. Las filas que coinciden exactamente con la marca de tiempo límite pueden volver a sincronizarse si nuevas filas comparten esa misma marca de tiempo. Para más información, consulta Evitar la resincronización de filas con marcas de tiempo duplicadas. - Los datos de la integración crean o actualizan cuentas basándose en el
idproporcionado. - Si
DELETEDestrue, la cuenta se elimina. - La sincronización no registra puntos de datos, pero todos los datos sincronizados cuentan para el uso total de tus cuentas, medido por el total de datos almacenados; no es necesario limitarse solo a los datos modificados.
- Los campos que no se encuentran en el esquema de tus cuentas se descartan; actualiza el esquema antes de sincronizar los nuevos campos.
- Puedes actualizar, reanudar o pausar una sincronización pasando el cursor por encima del nombre de la sincronización y seleccionando la acción correspondiente.
Sincroniza los datos de tu cuenta
Puedes sincronizar los datos de tu cuenta utilizando CDI a través de un almacén de datos o un almacenamiento de archivos.
Para integrar tu origen de datos con tu almacén de datos:
- Crea una tabla de origen en Snowflake. Utiliza los nombres del ejemplo o elige tus propios nombres de base de datos, esquema y tabla. También puedes utilizar una vista o una vista materializada en lugar de una tabla.
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 );
- Crea un rol, un almacén y un usuario, y concede permisos. Si ya tienes credenciales de otra sincronización, puedes reutilizarlas; asegúrate de que tengan acceso a la tabla de cuentas.
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 utilizas políticas de red, añade las IP de Braze a la lista de permitidas para que el servicio CDI pueda conectarse. Para consultar la lista de IP, ve a Cloud Data Ingestion.
- En el panel de Braze, ve a Data Settings > Cloud Data Ingestion y crea una nueva sincronización.
- Introduce los detalles de conexión (o reutiliza los existentes) y luego añade la tabla de origen.
- Selecciona el tipo de sincronización Accounts y luego introduce el nombre de la integración y la planificación.
- Elige la frecuencia de sincronización.
- Añade la clave pública del dashboard al usuario que creaste. Esto requiere un usuario con acceso
SECURITYADMINo superior en Snowflake. - Selecciona Test Connection para confirmar la configuración.
- Cuando hayas terminado, guarda la sincronización.
- Crea una tabla de origen en Redshift. Utiliza los nombres del ejemplo o elige tus propios nombres de base de datos, esquema y tabla. También puedes utilizar una vista o una vista materializada en lugar de una tabla.
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 )
-
Crea un usuario y concede permisos. Si ya tienes credenciales de otra sincronización, puedes reutilizarlas; asegúrate de que tengan acceso a la tabla de cuentas.
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 tienes un firewall o políticas de red, permite el acceso de Braze a tu instancia de Redshift. Para consultar la lista de IP, ve a Cloud Data Ingestion.
- (Opcional) Crea un nuevo proyecto o conjunto de datos para tu tabla de origen.
1
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
- Crea la tabla de origen para tu integración 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 );
Consulta lo siguiente al crear tu tabla de origen:
Nombre del campo Tipo ¿Obligatorio? UPDATED_ATTimestamp Sí PAYLOADJSON Sí IDString Sí NAMEString Sí DELETEDBoolean Opcional
-
Crea un usuario y concede permisos. Si ya tienes credenciales de otra sincronización, puedes reutilizarlas siempre que tengan acceso a la tabla de cuentas.
Permiso Propósito BigQuery Connection User Permite a Braze conectarse. BigQuery User Permite a Braze ejecutar consultas, leer metadatos y listar tablas. BigQuery Data Viewer Permite a Braze ver conjuntos de datos y su contenido. BigQuery Job User Permite a Braze ejecutar trabajos. Después de conceder los permisos, genera una clave JSON. Consulta Crear y eliminar claves para obtener instrucciones. La cargarás en el panel de Braze más adelante.
- Si utilizas políticas de red, permite que las IP de Braze accedan a tu instancia de BigQuery. Para consultar la lista de IP, ve a Cloud Data Ingestion.
- Crea un catálogo o esquema para tu tabla de origen.
1
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
- Crea la tabla de origen para tu integración 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 );
Consulta lo siguiente al crear tu tabla de origen:
Nombre del campo Tipo ¿Obligatorio? UPDATED_ATTimestamp Sí PAYLOADString, Struct, or Map Sí IDString Sí NAMEString Sí DELETEDBoolean Opcional
- Crea un token de acceso personal en Databricks:
- Selecciona tu nombre de usuario y luego selecciona User Settings.
- En la pestaña Access tokens, selecciona Generate new token.
- Añade un comentario para identificar el token, como “Braze CDI”.
- Deja Lifetime (days) en blanco para que no expire y luego selecciona Generate.
- Copia y guarda el token de forma segura para usarlo en el panel de Braze.
- Si utilizas políticas de red, permite que las IP de Braze accedan a tu instancia de Databricks. Para consultar la lista de IP, ve a Cloud Data Ingestion.
- Crea una o más tablas para tu integración CDI con estos campos:
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
- Crea un service principal y concede permisos. Si ya tienes credenciales de otra sincronización, puedes reutilizarlas; asegúrate de que tengan acceso a la tabla de cuentas.
- Si utilizas políticas de red, permite que las IP de Braze accedan a tu instancia de Microsoft Fabric. Para consultar la lista de IP, ve a Cloud Data Ingestion.
Para sincronizar datos de cuentas desde almacenamiento de archivos, crea un archivo de origen con los siguientes campos.
| Campo | ¿Obligatorio? | Descripción |
|---|---|---|
ID |
Sí | ID de la cuenta a actualizar o crear |
NAME |
Sí | Nombre de la cuenta |
PAYLOAD |
Sí | Cadena JSON de los campos a sincronizar con la cuenta en Braze |
DELETED |
Opcional | Booleano que indica si se debe eliminar la cuenta de Braze |
UPDATED_AT |
*No compatible | El almacenamiento de archivos no admite columnas UPDATED_AT |
Los nombres de archivo deben seguir las reglas de AWS y ser únicos. Añade marcas de tiempo para ayudar a garantizar la unicidad. Para más información sobre la sincronización con Amazon S3, consulta Integraciones de almacenamiento de archivos.
Los siguientes ejemplos muestran formatos JSON y CSV válidos para sincronizar datos de cuentas desde almacenamiento de archivos.
{"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\"}"}
Cada línea del archivo de origen debe contener JSON válido o, de lo contrario, el archivo se omitirá.
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}"
Crear una vista de sincronización
Crear una vista de sincronización en tu almacén de datos permite que el origen se actualice automáticamente sin necesidad de reescribir consultas adicionales.
Por ejemplo, si tienes una tabla de datos de cuentas llamada account_details_1 con account_id, account_name y tres atributos adicionales, podrías crear una vista de sincronización como la siguiente:
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] ;
Editar esta página en GitHub