Saltar al contenido principal

Descripción general

La integración de OneSignal + ClickHouse permite la sincronización automática de eventos personalizados desde su base de datos de análisis ClickHouse a OneSignal. Esto le permite activar Journeys automatizados y campañas de mensajería personalizadas basadas en datos de comportamiento del usuario almacenados en su base de datos columnar de alto rendimiento.

Requisitos

ClickHouse

  • Servidor ClickHouse (autoalojado o en la nube)
  • Credenciales de base de datos con acceso de lectura a las tablas de eventos
  • Tablas de datos de eventos que contengan datos de comportamiento con el esquema adecuado

Configuración

1

Crear usuario de ClickHouse para OneSignal

Cree una cuenta de usuario dedicada para OneSignal con acceso de solo lectura a sus tablas de eventos:
CREATE USER onesignal_reader IDENTIFIED BY 'strong_password';
GRANT SELECT ON event_database.* TO onesignal_reader;
2

Configurar el acceso a la red

Asegúrese de que OneSignal pueda conectarse a su instancia de ClickHouse:
  • Autoalojado: Permita conexiones desde las direcciones IP de OneSignal
  • ClickHouse Cloud: Agregue las IPs de OneSignal a su lista de permitidos
  • Puerto: El puerto predeterminado de ClickHouse es 8123 (HTTP) o 9000 (nativo)
3

Agregar integración en OneSignal

En OneSignal, vaya a Datos > Integraciones y haga clic en Agregar integración.Seleccione ClickHouse y proporcione:
  • Host: El nombre de host o IP de su servidor ClickHouse
  • Port: Puerto de ClickHouse (predeterminado: 8123 para HTTP, 9000 para nativo)
  • Database: Nombre de la base de datos que contiene las tablas de eventos
  • Username: onesignal_reader (o el nombre de usuario que eligió)
  • Password: Contraseña para el usuario de ClickHouse
  • Protocol: HTTP o Native (se recomienda HTTP por simplicidad)
4

Configurar la fuente de datos de eventos

Especifique la tabla de ClickHouse que contiene sus datos de eventos:
  • Table: Nombre de la tabla que contiene 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 (DateTime)
  • Propiedades adicionales del evento (JSON o columnas individuales)
5

Probar la conexión

Haga clic en Test Connection para verificar que OneSignal pueda acceder a su base de datos de ClickHouse y leer los 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

Consultas SQL personalizadas

Use SQL personalizado para filtrar o transformar datos de eventos antes de sincronizarlos con OneSignal:
SELECT
  event_name,
  user_id,
  toDateTime(event_timestamp) as timestamp,
  toJSONString(
    map(
      'product_id', product_id,
      'purchase_amount', purchase_amount,
      'category', category
    )
  ) as payload
FROM user_events
WHERE event_timestamp >= now() - INTERVAL 7 DAY
  AND event_name IN ('purchase', 'signup', 'upgrade')
ORDER BY event_timestamp DESC

Optimización del rendimiento

ClickHouse está optimizado para consultas analíticas. Considere:
  • Particionamiento: Use particionamiento basado en fechas en la marca de tiempo del evento
  • Indexación: Cree índices apropiados en user_id y event_name
  • Vistas materializadas: Preagregue los datos de eventos para consultas más rápidas
ClickHouse está optimizado para cargas de trabajo de solo anexado. Asegúrese de que sus datos de eventos sigan este patrón para un mejor rendimiento.

Preguntas frecuentes

¿Con qué frecuencia OneSignal sincroniza eventos desde ClickHouse?

OneSignal sincroniza los datos de eventos según su programación configurada, con un intervalo mínimo de 15 minutos.

¿Puedo sincronizar eventos de múltiples tablas de ClickHouse?

Sí, puede crear múltiples integraciones para diferentes tablas o usar consultas UNION para combinar datos de múltiples tablas.