Cómo exportar datos de Klaviyo a Databricks
Advanced Klaviyo Data Platform no está incluida en la aplicación de marketing estándar de Klaviyo, y se requiere una suscripción para acceder a la funcionalidad asociada. Consulta nuestra guía de facturación para saber cómo adquirir este plan.
Qué aprenderás
Descubre cómo configurar Databricks como destino de sincronización de salida para que Klaviyo escriba continuamente los datos de perfiles, eventos y métricas en tablas Delta dentro de tu propio espacio de trabajo de Databricks. Una vez conectado, el equipo de datos puede unir los datos de Klaviyo con el resto del lakehouse para realizar análisis, modelado y elaboración de informes.
¿En lugar de eso quieres incorporar datos en Klaviyo desde Databricks? Consulta Conectar Klaviyo y Databricks.
Antes de empezar
Asegúrate de tener lo siguiente:
- Un espacio de trabajo de Databricks con Unity Catalog habilitado. Los espacios de trabajo solo con el metastore de Hive no son compatibles. Si usas Hive metastore, ten en cuenta la federación de Hive metastore.
- Un almacén de datos SQL que admite
VARIANTcolumnas y tablas temporales con ámbito de sesión para que Klaviyo pueda escribir datos. Se recomiendan los almacenes de SQL sin servidor; los almacenes Classic y Pro pueden tardar varios minutos en iniciarse, lo que puede retrasar las sincronizaciones. - Permiso para crear esquemas, tablas y concesiones en el catálogo que usarás (o ayuda de un administrador de Databricks).
- Permiso para gestionar integraciones en Klaviyo.
- Las direcciones IP de salida de Klaviyo en la lista de permitidas, si el espacio de trabajo restringe el tráfico entrante con listas de acceso de IP:
184.72.183.187/3252.206.71.52/323.227.146.32/3244.198.39.11/3235.172.58.121/323.228.37.244/3254.88.219.8/323.214.211.176/32
Solo puedes tener 1 destino de exportación de almacén de datos por cuenta de Klaviyo. Si ya exportas a otro almacén (por ejemplo, Snowflake o S3), tendrás que eliminar ese destino antes de añadir Databricks.
Paso 1: Crea un esquema para los datos de Klaviyo
En Databricks, los esquemas se encuentran dentro de un catálogo. Crea un esquema específico para almacenar las tablas en las que Klaviyo escribe. Los ejemplos de SQL de este artículo usan main como catálogo y KLAVIYO_EXPORT como esquema. Si usas nombres diferentes, sustitúyelos en todos los ejemplos de SQL e introduce los mismos nombres en Klaviyo durante el paso 5.
USE CATALOG main; -- or your organization's designated catalog
CREATE SCHEMA IF NOT EXISTS KLAVIYO_EXPORT;Paso 2: crear las tablas de destino
Ejecuta el siguiente script en el esquema que creaste en el paso 1. Klaviyo escribe en 3 tablas:
klaviyo_profile: Una fila por perfil, incluidos los campos estándar, la ubicación y las propiedades personalizadas.klaviyo_event: Una fila por evento (por ejemplo, Placed Order o Opened Email), vinculada a un perfil y a una métrica.klaviyo_metric: Una fila por métrica, que se usa para buscar el nombre de la métrica y la integración de origen de cada evento.
Las propiedades de perfil personalizadas y las propiedades de eventos se almacenan en columnas VARIANT, para que puedas consultar JSON anidado directamente sin gestionar cientos de columnas individuales.
USE SCHEMA main.KLAVIYO_EXPORT;
CREATE TABLE klaviyo_profile (
id STRING NOT NULL,
external_id STRING,
email STRING,
phone_number STRING,
first_name STRING,
last_name STRING,
title STRING,
organization STRING,
properties VARIANT,
image STRING,
created TIMESTAMP,
updated TIMESTAMP,
location_address1 STRING,
location_address2 STRING,
location_city STRING,
location_country STRING,
location_latitude STRING,
location_longitude STRING,
location_region STRING,
location_zip STRING,
PRIMARY KEY (id)
)
TBLPROPERTIES ('delta.feature.variantType-preview' = 'supported');
CREATE TABLE klaviyo_event (
id STRING NOT NULL,
metric_id STRING NOT NULL,
profile_id STRING,
event_properties VARIANT,
datetime TIMESTAMP,
uuid STRING,
PRIMARY KEY (id)
)
TBLPROPERTIES ('delta.feature.variantType-preview' = 'supported');
CREATE TABLE klaviyo_metric (
id STRING NOT NULL,
name STRING NOT NULL,
integration_id STRING,
integration_name STRING,
integration_category STRING,
created TIMESTAMP,
updated TIMESTAMP,
PRIMARY KEY (id)
);Los nombres de las tablas deben coincidir exactamente. Klaviyo busca klaviyo_profile, klaviyo_event y klaviyo_metric en el esquema que proporcionas durante la configuración.
Paso 3: crear una entidad de servicio y un token de acceso
Klaviyo se autentica en Databricks con un token de acceso personal (PAT). Recomendamos crear una entidad de servicio dedicada que se use solo para esta integración, en lugar de la cuenta de una persona.
- Crea un service principal (o un usuario del espacio de trabajo) para Klaviyo.
- Genera un token de acceso personal:
- Entidad de servicio principal: Pide a un administrador del espacio de trabajo que cree el token inicial con Databricks CLI.
- Usuario del espacio de trabajo: Crear un token en la IU de Databricks.
- Guarda el token en un lugar seguro. Lo pegarás en Klaviyo en el paso 5.
Trata el token de acceso como una contraseña. Cualquiera que tenga el token puede acceder a Databricks con los permisos de la cuenta asociada. Rótalo periódicamente y después de cambios de personal.
Si ya creaste una entidad de servicio para importar desde Databricks, puedes reutilizarla. Solo tienes que añadir los permisos de exportación en el paso 4.
Paso 4: conceder permisos
Concede a la entidad de servicio de Klaviyo acceso al catálogo, esquema y almacén de SQL. Sustituye klaviyo_service_user por el ID de aplicación o nombre de usuario de la entidad de servicio.
GRANT USE CATALOG ON CATALOG main TO `klaviyo_service_user`;
GRANT USE SCHEMA, SELECT, MODIFY ON SCHEMA main.KLAVIYO_EXPORT TO `klaviyo_service_user`;Privilegio | Propósito |
|---|---|
| Permite que Klaviyo acceda al catálogo que contiene el esquema de exportación. |
| Permite que Klaviyo acceda al esquema de exportación. |
| Permite que Klaviyo lea las filas existentes para poder actualizar los registros en lugar de duplicarlos. |
| Permite que Klaviyo inserte, actualice y elimine filas en las tablas de destino. |
Concede también a la entidad de servicio principal el permiso Puede usar en el almacén de SQL que tengas previsto usar. En Databricks, ve a Almacenes de SQL, selecciona tu almacén, haz clic en Permisos y añade la entidad de servicio principal.
Verifica la configuración (opcional)
Con la misma identidad y el mismo token que le darás a Klaviyo, confirma las tablas y las concesiones:
SHOW TABLES IN main.KLAVIYO_EXPORT;
SHOW GRANTS ON SCHEMA main.KLAVIYO_EXPORT;Deberías ver las 3 tablas, y el principal de servicio debería aparecer con USE SCHEMA, SELECT y MODIFY.
Paso 5: conectar Databricks en Klaviyo
- En Klaviyo, ve a Avanzado > Gestión de datos > Sincronización.
- Si ya tienes una sincronización, haz clic en Crear sincronización.
- Selecciona Exportar datos a tu almacén de datos.
- Elige Databricks y luego haz clic en Conectar con Databricks.
- Introduce los detalles de la conexión:
Campo | Descripción | Dónde encontrarlo |
|---|---|---|
Nombre | Es un nombre que te ayude a identificar esta conexión. | Introduce un nombre descriptivo, como una exportación de Klaviyo. |
Nombre de host del servidor | El host de tu espacio de trabajo de Databricks. | La barra de direcciones del navegador cuando inicias sesión en Databricks. Ejemplo: |
Ruta HTTP | La ruta HTTP del almacén SQL que usará Klaviyo. | Almacenes SQL > selecciona el almacén > Detalles de conexión. Ejemplo: |
Catálogo | El catálogo que contiene el esquema de exportación. | El catálogo que usaste en el paso 1 (por ejemplo, |
Esquema | El esquema que contiene las 3 tablas de Klaviyo. | El esquema que creaste en el paso 1 (por ejemplo, |
Token de acceso | El token de acceso personal del servicio principal o del usuario del espacio de trabajo que creaste. | El token que generaste en el paso 3. |
Haz clic en Siguiente para configurar la sincronización.
También puedes encontrar Databricks en el marketplace de aplicaciones de Klaviyo. Para ello, ve a Integraciones > Explorar aplicaciones y busca Databricks.
Paso 6: Configura la sincronización de datos
Elige qué envía Klaviyo a Databricks y cuándo se sincroniza.
Objetos de datos
Elige sincronizar perfiles, eventos o ambos. Los datos de métricas se sincronizan junto con los eventos, para que puedas consultar el nombre y el origen de la métrica de cada evento.
Sincronizar todos los datos de Klaviyo puede aumentar los costes de computación y almacenamiento de Databricks.
Integraciones a excluir
Selecciona las integraciones cuyos eventos no quieres que se envíen a Databricks. Esto solo se aplica a los datos de eventos; no excluye los perfiles.
Sincronización selectiva
Selecciona las métricas cuyos eventos quieres sincronizar, como Placed Order. Deja Sincronización selectiva vacío para sincronizar todos los eventos de las integraciones que no hayas excluido. Este campo solo aparece si seleccionas el objeto de datos Eventos.
Cadencia de sincronización
En Cada, elige cada cuánto sincronizar los datos nuevos y actualizados: cada 1, 2, 4, 6, 12 o 24 horas. El valor predeterminado es 1 hora. Configura Fecha de inicio, Hora de inicio y Zona horaria para la programación.
Datos históricos
Elige la cantidad de histórico de datos que quieres enviar durante la sincronización inicial:
- 30 días
- 90 días
- 1 año
- Desde siempre
Las sincronizaciones históricas grandes pueden tardar un tiempo en completarse y aumentar los costes de Databricks. Considera empezar con un intervalo más corto si solo necesitas datos recientes.
Paso 7: revisar, conectar y supervisar la sincronización
- Haz clic en Siguiente para abrir Revisar. Comprueba los detalles de la conexión, los datos compartidos, las integraciones excluidas, las métricas seleccionadas y el rango inicial de sincronización de datos.
- Haz clic en Conectar. Klaviyo prueba la conexión y crea la exportación si la prueba se completa correctamente.
Cuando la configuración se completa correctamente, Klaviyo muestra un mensaje de confirmación y te devuelve a Sincronizando. La exportación está habilitada y puedes supervisar ahí el estado de sincronización.
Si falla la prueba de conexión, revisa los detalles del error. Haz clic en Editar credenciales para corregir los detalles de la conexión y, a continuación, haz clic en Siguiente en la configuración de datos para volver a Revisión y haz clic en Conectar de nuevo.
Para supervisar la sincronización, ve a Avanzado > Gestión de datos > Sincronización y haz clic en Databricks en la fila marcada como Exportación. Usa estas pestañas:
- Histórico: el estado del relleno histórico inicial.
- Periódico: El estado de las sincronizaciones en la cadencia seleccionada, incluida la actualidad de los datos (cuánto retraso tienen tus tablas de Databricks respecto a Klaviyo).
- Configuración: ve y edita los detalles de la conexión, la selección de datos, la cadencia de sincronización y el intervalo histórico. Haz clic en Actualizar información en la sección que cambies para guardar.
Para obtener más información sobre los estados de sincronización, cómo pausar y reanudar las sincronizaciones y cómo ver los registros de errores, consulta Entender la sincronización con el almacén de datos en Klaviyo.
Consulta tus datos de Klaviyo en Databricks
Aquí tienes algunos ejemplos para empezar.
Cuenta eventos por nombre de métrica en los últimos 7 días:
SELECT m.name AS metric, COUNT(*) AS events
FROM main.KLAVIYO_EXPORT.klaviyo_event e
JOIN main.KLAVIYO_EXPORT.klaviyo_metric m ON e.metric_id = m.id
WHERE e.datetime >= current_timestamp() - INTERVAL 7 DAYS
GROUP BY m.name
ORDER BY events DESC;Leer una propiedad de perfil personalizada de la columna properties VARIANT:
SELECT id, email, properties:loyalty_tier::STRING AS loyalty_tier
FROM main.KLAVIYO_EXPORT.klaviyo_profile
WHERE properties:loyalty_tier IS NOT NULL;Obtener el valor del pedido a partir de los eventos de Pedido realizado:
SELECT e.profile_id, e.datetime, e.event_properties:`$value`::DOUBLE AS order_value
FROM main.KLAVIYO_EXPORT.klaviyo_event e
JOIN main.KLAVIYO_EXPORT.klaviyo_metric m ON e.metric_id = m.id
WHERE m.name = 'Placed Order';Solución de problemas
Asunto | Qué comprobar |
|---|---|
La prueba de conexión falla con un error de autenticación | Confirma que el nombre de host no tenga el prefijo |
La prueba de conexión falla con un error de permisos | Confirma las concesiones del paso 4, incluidas |
Klaviyo no puede encontrar las tablas de destino. | Confirma que el catálogo y el esquema en Klaviyo coinciden con donde ejecutaste el script del paso 2 y que los nombres de las tablas son exactamente |
Errores sobre el tipo | Asegúrate de que el almacén SQL ejecute una versión de Databricks SQL compatible con |
Las sincronizaciones tardan en empezar | Los almacenes de SQL Classic y Pro pueden tardar varios minutos en iniciarse. Usa un almacén de SQL sin servidor o aumenta el tiempo de detención automática del almacén. |
Las solicitudes están bloqueadas | Si el espacio de trabajo utiliza listas de acceso IP, añade a la lista de permitidos las direcciones IP de Klaviyo que se indican en Antes de empezar. |
Quitar una exportación de Databricks
Al eliminar la exportación, se detienen las futuras sincronizaciones. Los datos que ya se han escrito en las tablas de Databricks no se eliminan.
- Ve a integraciones en Klaviyo.
- Abre el menú junto a la integración de exportación de Databricks y selecciona Eliminar integración.
- Haz clic en Eliminar integración en el cuadro de diálogo de confirmación.