Saltar al contenido principal
Integración de OneSignal Databricks

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.
Use esta integración para unificar sus datos de participación y comportamiento en todas las plataformas e impulsar estrategias de mensajería basadas en datos.

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)
Pasos de configuración

1. Recopilar detalles del almacén SQL

1

Inicie sesión en su espacio de trabajo de Databricks

Vaya a SQL Warehouses en su espacio de trabajo de Databricks.
2

Seleccione su almacén

Seleccione su almacén y abra la pestaña Connection details.
3

Guarde los siguientes detalles

  • Server Hostname
  • Port
  • HTTP Path
Detalles de conexión SQL de Databricks para configuración de Fivetran

Detalles de conexión SQL de Databricks para configuración de Fivetran

2. Crear un principal de servicio

1

Ir a la página Service Principals

Vaya a Workspace Settings > Identity and Access > Service Principals.
2

Agregar un nuevo principal de servicio

Haga clic en Add Service Principal, luego en Add New.
3

Nombrar el principal de servicio

Nómbrelo (por ejemplo, onesignal-sync).
Modal para agregar un principal de servicio, con la opción 'Add new' resaltada

Modal para agregar un principal de servicio, con la opción 'Add new' resaltada

3. Generar un secreto

1

Hacer clic en el principal creado

2

Ir a la pestaña Secrets

3

Generar un secreto

Haga clic en Generate Secret y guárdelo de forma segura.
El secreto solo es visible una vez: guárdelo de forma segura.
Modal 'Generate secret' de Databricks que muestra el secreto OAuth y el ID de cliente para autenticación API

Modal 'Generate secret' de Databricks que muestra el secreto OAuth y el ID de cliente para autenticación API

4. Asignar permisos

1

Navegar a su catálogo y abrir la pestaña Permissions

2

Hacer clic en Grant

3

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

Pantalla de asignación de privilegios para un principal de Databricks con permisos de catálogo personalizados seleccionados.

5. Conectar OneSignal

1

Activar la integración

En OneSignal, navegue a Data > Integrations > Databricks.
2

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

Formulario de configuración de Databricks de OneSignal con campos para catálogo, nombre de host, ruta HTTP y credenciales OAuth.

3

Configurar la integración

  • Sync Frequency: tan frecuente como cada 15 minutos
  • Dataset/Table Names: preconfigurado como onesignal_events_<app-id> y message_events (editable)
  • Event Types: elija cuáles sincronizar: seleccione todos o solo los que necesite
4

Seleccionar eventos

Seleccione los eventos que le interesa recibir en su catálogo de Databricks.
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

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.

5

Completar la configuración

Haga clic en Save y espere la confirmación de éxito
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

  1. Abra su Catalog en Databricks.
  2. Una vez que se complete la sincronización, aparecerá su esquema configurado.
  3. 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

    Vista de catálogo de Databricks que muestra la tabla de eventos de mensajes de OneSignal bajo un esquema de producción.

  4. 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

    Datos de muestra de la tabla message_events_1 con campos de eventos de OneSignal sincronizados.

Si tiene problemas como esquemas faltantes, errores de permisos o eventos con formato incorrecto, contacte a 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_kindDescripción
Push enviadomessage.push.sentNotificación push enviada exitosamente.
Push recibidomessage.push.receivedPush entregado (ver Entrega confirmada).
Push clicmessage.push.clickedEl usuario hizo clic en el push.
Push fallidomessage.push.failedFallo de entrega. Ver informes de mensajes.
Push dado de bajamessage.push.unsubscribedEl usuario se dio de baja del push.
Impresión in-appmessage.iam.displayedMensaje in-app mostrado.
In-app clicmessage.iam.clickedMensaje in-app clicado.
Página in-app vistamessage.iam.pagedisplayedPágina in-app mostrada.
Email enviadomessage.email.sentEmail entregado.
Email recibidomessage.email.receivedEmail aceptado por el servidor de correo del destinatario.
Email abiertomessage.email.openedEmail abierto. Ver Informes de email.
Enlace de email clicadomessage.email.clickedEnlace en el email clicado.
Email dado de bajamessage.email.unsubscribedDestinatario dado de baja.
Email marcado como spammessage.email.resporedasspamMarcado como spam. Ver Entregabilidad de email.
Email rebotadomessage.email.hardbouncedRebote debido a fallo de entrega permanente.
Email fallidomessage.email.failedEntrega fallida.
Email suprimidomessage.email.supressedSuprimido debido a lista de supresión.
SMS enviadomessage.sms.sentSMS enviado.
SMS entregadomessage.sms.deliveredSMS entregado exitosamente.
SMS fallidomessage.sms.failedSMS falló al entregar.
SMS no entregadomessage.sms.undeliveredSMS 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 columnaTipoDescripción
event_idUUIDIdentificador único del evento
event_timestampTimestampHora de ocurrencia del evento
event_kindStringEl Tipo de evento
subscription_device_typeStringTipo de dispositivo (por ejemplo, iOS, Android, Web, Email, SMS)
languageStringCódigo de idioma de suscripción
versionStringVersión de integración
device_osStringVersión del sistema operativo del dispositivo
device_typeNumberTipo de dispositivo numérico
tokenStringToken push, número de teléfono o email
subscription_idUUIDID de suscripción
subscribedBooleanEstado de suscripción
onesignal_idUUIDID de usuario de OneSignal
last_activeStringMarca de tiempo de última actividad
sdkStringVersión del SDK de OneSignal
external_idStringID de usuario externo que debe coincidir con el ID de usuario de integración
app_idUUIDID de aplicación de OneSignal
template_idUUIDID de plantilla (si aplica)
message_idUUIDID de lote/solicitud de mensaje
message_nameStringNombre del mensaje
message_titleStringTítulo del mensaje (solo en inglés)
message_contentsStringCuerpo del mensaje truncado (solo en inglés)
_created, _id, _index, _fivetran_syncedUso internoMetadatos 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
Requisitos
  • 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)
Pasos de configuración
1

Crear token de acceso personal de Databricks

Genere un token de acceso personal para que OneSignal acceda a su espacio de trabajo de Databricks:
  1. Navegue a User Settings en su espacio de trabajo de Databricks
  2. Haga clic en la pestaña Developer y luego en Access tokens
  3. Haga clic en Generate new token
  4. Ingrese un comentario como “OneSignal Integration” y establezca la expiración (recomendamos 90 días)
  5. Guarde el token generado (lo necesitará para OneSignal)
2

Configurar acceso a SQL Warehouse

Asegúrese de que OneSignal pueda consultar sus datos de eventos a través de SQL Warehouse:
  1. Navegue a SQL Warehouses en su espacio de trabajo de Databricks
  2. Seleccione o cree un SQL Warehouse para acceso de OneSignal
  3. Anote el Server Hostname y la HTTP Path de los detalles de conexión
  4. Asegúrese de que el almacén tenga acceso a sus tablas de datos de eventos
3

Otorgar permisos de tabla

Otorgue a OneSignal acceso de lectura a las tablas que contengan datos de eventos:
-- Para espacios de trabajo con Unity Catalog habilitado
GRANT SELECT ON TABLE catalog.schema.event_table TO `onesignal@yourdomain.com`;

-- Para tablas de Hive metastore
GRANT SELECT ON TABLE database.event_table TO `onesignal@yourdomain.com`;
4

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
5

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
Su tabla de eventos debe contener columnas para:
  • Nombre/tipo de evento (String)
  • Identificador de usuario (String)
  • Marca de tiempo del evento (Timestamp)
  • Propiedades de eventos adicionales
6

Probar la conexión

Haga clic en Test Connection para verificar que OneSignal pueda acceder a su espacio de trabajo de Databricks y leer datos de eventos.

Mapeo de datos de eventos

Mapee su de al formato de eventos personalizados de OneSignal:
Campo de OneSignalDescripciónRequerido
nameevent_nameIdentificador de evento
external_iduser_idIdentificador de usuario
timestampevent_timestampCuándo ocurrió el eventoNo
propertiesevent_dataNo

Configuración avanzada

Integración de Unity Catalog

Aproveche Unity Catalog para acceso de datos gobernado:
SELECT
  event_name,
  user_id,
  event_timestamp,
  to_json(
    named_struct(
      'product_id', product_id,
      'purchase_amount', purchase_amount,
      'category', category
    )
  ) as payload
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp() - INTERVAL 7 DAYS

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_id y event_name para 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
Asegúrese de que su SQL Warehouse tenga recursos de cómputo suficientes para manejar las consultas de OneSignal sin afectar otras cargas de trabajo.

Preguntas frecuentes

¿Por qué veo diferentes IDs de mensaje con el mismo contenido?

Esto sucede cuando el mismo mensaje se envía más de una vez, probablemente a través de un flujo transaccional o plantilla de mensaje reutilizada en múltiples envíos.

¿Con qué frecuencia OneSignal sincroniza eventos desde Databricks?

OneSignal sincroniza datos de eventos según su programa configurado, con un intervalo mínimo de 15 minutos.

¿Puedo usar notebooks de Databricks para procesamiento de eventos?

Sí, puede usar notebooks para procesar y preparar datos de eventos, luego exponerlos a través de tablas que OneSignal pueda consultar.

¿Qué pasa con la optimización de costos para consultas de eventos?

Considere usar SQL Warehouses sin servidor para cómputo rentable bajo demanda que se escala automáticamente según la carga de consultas.