
Descripción general de la integración de OneSignal Databricks
Descripción general
La integración de OneSignal + Databricks admite sincronización de datos bidireccional:- Exportar eventos de mensajes de OneSignal a Databricks para análisis, paneles e informes.
- Importar eventos personalizados desde Databricks a OneSignal para activar Journeys y campañas personalizadas.
Exportar eventos de OneSignal a Databricks
Sincronice eventos de push, correo electrónico, in-app y SMS desde OneSignal en su lakehouse de Databricks para análisis y visibilidad casi en tiempo real. Requisitos- Plan Professional
- Eventos personalizados habilitados (para importaciones de eventos)
- Plataforma Databricks: AWS, Azure o GCP
- Plan Databricks: Premium o superior
- Databricks Unity Catalog (recomendado para gobernanza)
- Databricks SQL Warehouse para consultas
- Tablas de eventos Delta Lake (para importación de eventos personalizados)
1. Recopilar detalles del almacén SQL
Inicie sesión en su espacio de trabajo de Databricks
Seleccione su almacén
Guarde los siguientes detalles
- Server Hostname
- Port
- HTTP Path

Detalles de conexión SQL de Databricks para configuración de Fivetran
2. Crear un principal de servicio
Ir a la página Service Principals
Agregar un nuevo principal de servicio
Nombrar el principal de servicio
onesignal-sync).
Modal para agregar un principal de servicio, con la opción 'Add new' resaltada
3. Generar un secreto
Hacer clic en el principal creado
Ir a la pestaña Secrets
Generar un secreto

Modal 'Generate secret' de Databricks que muestra el secreto OAuth y el ID de cliente para autenticación API
4. Asignar permisos
Navegar a su catálogo y abrir la pestaña Permissions
Hacer clic en Grant
Asignar los siguientes permisos al principal de servicio
- USE CATALOG
- USE SCHEMA
- SELECT
- MODIFY
- CREATE SCHEMA
- CREATE TABLE

Pantalla de asignación de privilegios para un principal de Databricks con permisos de catálogo personalizados seleccionados.
5. Conectar OneSignal
Activar la integración
Ingresar los detalles
- Server Hostname
- Port
- HTTP Path
- Catalog Name
- Schema Name
- Credenciales del principal de servicio (ID + Secret)

Formulario de configuración de Databricks de OneSignal con campos para catálogo, nombre de host, ruta HTTP y credenciales OAuth.
Configurar la integración
- Sync Frequency: tan frecuente como cada 15 minutos
- Dataset/Table Names: preconfigurado como
onesignal_events_<app-id>ymessage_events(editable) - Event Types: elija cuáles sincronizar: seleccione todos o solo los que necesite
Seleccionar eventos

Pantalla de configuración de exportación de eventos de OneSignal que muestra el estado de sincronización, la configuración del conjunto de datos y los tipos de eventos de mensajes seleccionados.
Completar la configuración
6. Ver datos en Databricks
- Abra su Catalog en Databricks.
- Una vez que se complete la sincronización, aparecerá su esquema configurado.
-
Acceda y consulte la tabla
message_events.
Vista de catálogo de Databricks que muestra la tabla de eventos de mensajes de OneSignal bajo un esquema de producción.
-
Haga clic en las tablas para obtener una vista previa de datos de muestra.

Datos de muestra de la tabla message_events_1 con campos de eventos de OneSignal sincronizados.
support@onesignal.com.Eventos y propiedades de mensajes
Tipos de eventos de mensajes
Propiedad:event_kind
Tipo: String
El tipo de mensaje y evento (por ejemplo, message.push.received, message.push.sent).
| Evento de mensaje (OneSignal) | event_kind | Descripción |
|---|---|---|
| Push enviado | message.push.sent | Notificación push enviada exitosamente. |
| Push recibido | message.push.received | Push entregado (ver Entrega confirmada). |
| Push clic | message.push.clicked | El usuario hizo clic en el push. |
| Push fallido | message.push.failed | Fallo de entrega. Ver informes de mensajes. |
| Push dado de baja | message.push.unsubscribed | El usuario se dio de baja del push. |
| Impresión in-app | message.iam.displayed | Mensaje in-app mostrado. |
| In-app clic | message.iam.clicked | Mensaje in-app clicado. |
| Página in-app vista | message.iam.pagedisplayed | Página in-app mostrada. |
| Email enviado | message.email.sent | Email entregado. |
| Email recibido | message.email.received | Email aceptado por el servidor de correo del destinatario. |
| Email abierto | message.email.opened | Email abierto. Ver Informes de email. |
| Enlace de email clicado | message.email.clicked | Enlace en el email clicado. |
| Email dado de baja | message.email.unsubscribed | Destinatario dado de baja. |
| Email marcado como spam | message.email.resporedasspam | Marcado como spam. Ver Entregabilidad de email. |
| Email rebotado | message.email.hardbounced | Rebote debido a fallo de entrega permanente. |
| Email fallido | message.email.failed | Entrega fallida. |
| Email suprimido | message.email.supressed | Suprimido debido a lista de supresión. |
| SMS enviado | message.sms.sent | SMS enviado. |
| SMS entregado | message.sms.delivered | SMS entregado exitosamente. |
| SMS fallido | message.sms.failed | SMS falló al entregar. |
| SMS no entregado | message.sms.undelivered | SMS rechazado o inalcanzable. |
Esquema de datos de eventos
Para cada evento de mensaje generado por un usuario, los siguientes metadatos se adjuntarán al registro.| Nombre de columna | Tipo | Descripción |
|---|---|---|
event_id | UUID | Identificador único del evento |
event_timestamp | Timestamp | Hora de ocurrencia del evento |
event_kind | String | El Tipo de evento |
subscription_device_type | String | Tipo de dispositivo (por ejemplo, iOS, Android, Web, Email, SMS) |
language | String | Código de idioma de suscripción |
version | String | Versión de integración |
device_os | String | Versión del sistema operativo del dispositivo |
device_type | Number | Tipo de dispositivo numérico |
token | String | Token push, número de teléfono o email |
subscription_id | UUID | ID de suscripción |
subscribed | Boolean | Estado de suscripción |
onesignal_id | UUID | ID de usuario de OneSignal |
last_active | String | Marca de tiempo de última actividad |
sdk | String | Versión del SDK de OneSignal |
external_id | String | ID de usuario externo que debe coincidir con el ID de usuario de integración |
app_id | UUID | ID de aplicación de OneSignal |
template_id | UUID | ID de plantilla (si aplica) |
message_id | UUID | ID de lote/solicitud de mensaje |
message_name | String | Nombre del mensaje |
message_title | String | Título del mensaje (solo en inglés) |
message_contents | String | Cuerpo del mensaje truncado (solo en inglés) |
_created, _id, _index, _fivetran_synced | Uso interno | Metadatos de sincronización de Fivetran |
Notas
- Las sincronizaciones después de guardar/activar pueden tardar de 15 a 30 minutos adicionales en completarse.
- Desactivar aún puede resultar en una sincronización final después de la desactivación.
- Para garantizar una sincronización de datos eficiente, nuestro sistema crea y gestiona automáticamente conjuntos de datos de preparación. Estos conjuntos de datos, nombrados con un patrón como
fivetran_{dos palabras aleatorias}_staging, almacenan temporalmente datos durante el procesamiento antes de que se integren en su esquema principal. Estos conjuntos de datos de preparación son esenciales para mantener un flujo de trabajo optimizado y no deben eliminarse, ya que se recrearán automáticamente.
Importar eventos desde Databricks
Envíe datos de eventos de comportamiento desde Databricks a OneSignal para:- Activar Journeys basados en la actividad del usuario
- Personalizar mensajes según datos de comportamiento
- Acceso a flujos de eventos para eventos de mensajes salientes (Se aplican limitaciones del plan y sobrecargos)
- Acceso a eventos personalizados para sincronización de eventos entrantes (Se aplican limitaciones del plan y sobrecargos)
- Plan de cuenta actualizado (no disponible en aplicaciones gratuitas)
- Espacio de trabajo de Databricks con SQL Warehouse o clúster de cómputo
- Token de acceso personal con permisos apropiados
- Tablas de datos de eventos que contengan datos de comportamiento en formato Delta Lake
- Unity Catalog (recomendado para gobernanza de datos)
Crear token de acceso personal de Databricks
- Navegue a User Settings en su espacio de trabajo de Databricks
- Haga clic en la pestaña Developer y luego en Access tokens
- Haga clic en Generate new token
- Ingrese un comentario como “OneSignal Integration” y establezca la expiración (recomendamos 90 días)
- Guarde el token generado (lo necesitará para OneSignal)
Configurar acceso a SQL Warehouse
- Navegue a SQL Warehouses en su espacio de trabajo de Databricks
- Seleccione o cree un SQL Warehouse para acceso de OneSignal
- Anote el Server Hostname y la HTTP Path de los detalles de conexión
- Asegúrese de que el almacén tenga acceso a sus tablas de datos de eventos
Otorgar permisos de tabla
Agregar integración en OneSignal
- Server Hostname: El nombre de host de su SQL Warehouse de Databricks
- HTTP Path: Ruta HTTP de SQL Warehouse
- Personal Access Token: Token creado en el paso 1
- Catalog (opcional): Nombre del Unity Catalog si usa Unity Catalog
Configurar fuente de datos de eventos
- Database/Schema: Nombre de base de datos o esquema que contiene las tablas de eventos
- Table: Nombre de tabla con registros de eventos (por ejemplo,
user_events) - Event Query: Consulta SQL opcional para filtrar o transformar datos de eventos
- Nombre/tipo de evento (String)
- Identificador de usuario (String)
- Marca de tiempo del evento (Timestamp)
- Propiedades de eventos adicionales
Probar la conexión
Mapeo de datos de eventos
Mapee su de al formato de eventos personalizados de OneSignal:| Campo de OneSignal | Descripción | Requerido | |
|---|---|---|---|
name | event_name | Identificador de evento | Sí |
external_id | user_id | Identificador de usuario | Sí |
timestamp | event_timestamp | Cuándo ocurrió el evento | No |
properties | event_data | No |
Configuración avanzada
Integración de Unity Catalog
Aproveche Unity Catalog para acceso de datos gobernado:Optimización de Delta Lake
Optimice las tablas de eventos para un mejor rendimiento de consultas:- Particionamiento: Particione por fecha (
event_date) para consultas basadas en tiempo más rápidas - Z-Ordering: Z-order por
user_idyevent_namepara mejor filtrado - Funciones de Delta Lake: Use clustering líquido para optimización automática
Procesamiento de eventos en streaming
Para procesamiento de eventos en tiempo real, considere:- Structured Streaming: Procese eventos a medida que llegan
- Delta Live Tables: Construya pipelines robustos de procesamiento de eventos
- Auto Loader: Ingesta continua de nuevos archivos de eventos