Descripción general
La integración de OneSignal + Databricks admite dos flujos:- Exportar: Envíe eventos de mensajes de OneSignal a Databricks para análisis e informes.
- Importar: Envíe eventos personalizados desde Databricks a OneSignal para activar Journeys y personalizar campañas.
La exportación e importación se configuran por separado. Puede configurar una sin la otra.
Exportar eventos de mensajes de OneSignal a Databricks
Sincronice todos sus eventos de mensajes desde OneSignal en su lakehouse de Databricks para análisis y visibilidad casi en tiempo real. Requisitos- Plan Professional o superior
- 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
Vaya a SQL Warehouses en su espacio de trabajo de Databricks.
2. Crear un principal de servicio
Ir a la página Service Principals
Vaya a Workspace Settings > Identity and Access > Service Principals.
3. Generar un secreto
4. Asignar permisos
5. Conectar OneSignal
Ingresar los detalles
- Server Hostname
- Port
- HTTP Path
- Catalog Name
- Schema Name
- Credenciales del principal de servicio (ID + Secret)

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
La sincronización inicial de datos puede tardar de 15 a 30 minutos en aparecer en BigQuery.Mientras espera, envíe mensajes por push, correo electrónico, in-app o SMS para activar los eventos seleccionados.
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.
-
Haga clic en las tablas para obtener una vista previa de datos de muestra.

Si tiene problemas como esquemas faltantes, errores de permisos o eventos con formato incorrecto, contacte a
[email protected].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.impression | Mensaje in-app mostrado. |
| In-app clic | message.iam.clicked | Mensaje in-app clicado. |
| Página in-app vista | message.iam.page_displayed | 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 reportado como spam | message.email.reported_as_spam | Marcado como spam. Ver Entregabilidad de email. |
| Email rebotado | message.email.bounced | Rebote debido a fallo de entrega permanente. |
| Email fallido | message.email.failed | Entrega fallida. |
| Email suprimido | message.email.suppressed | 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) |
failure_reason | String | Razón del fallo (para eventos de fallo de push y email) |
_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
Genere un token de acceso personal para que OneSignal acceda a su espacio de trabajo 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
Asegúrese de que OneSignal pueda consultar sus datos de eventos a través de 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
Otorgue a OneSignal acceso de lectura a las tablas que contengan datos de eventos:
Agregar integración en OneSignal
En OneSignal, vaya a Datos > Integraciones y haga clic en Agregar integración.Seleccione Databricks y proporcione:
- 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
Especifique la tabla de Databricks que contiene sus 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
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




