Saltar al contenido principal

Descripción general

La integración OneSignal + Greenplum permite la sincronización de eventos personalizados desde tu base de datos Greenplum a OneSignal para activar campañas de mensajería automatizadas y Journeys basados en el comportamiento del usuario. Greenplum es una base de datos de procesamiento masivamente paralelo (MPP) construida sobre PostgreSQL, diseñada para cargas de trabajo de análisis a gran escala.

Requisitos

Greenplum

  • Instancia de Greenplum con acceso de red
  • Usuario de base de datos con permisos apropiados
  • Tablas de eventos que contengan datos de comportamiento estructurados

Motores de sincronización y permisos

OneSignal lee datos de tablas y vistas en Greenplum y los sincroniza para activar campañas de mensajería automatizadas. Para limitar la carga en tu base de datos, OneSignal mantiene tablas de seguimiento de estado que le permiten sincronizar solo datos que han sido modificados desde la última sincronización (sincronizaciones incrementales). Al configurar tu conexión Greenplum, elegirás un Motor de Sincronización que determina cómo se maneja el seguimiento de estado. El Basic Sync Engine mantiene tablas de seguimiento de estado en infraestructura propiedad de OneSignal y es más simple de configurar, requiriendo solo acceso de lectura. El Advanced Sync Engine ofrece rendimiento mejorado al mantener tablas de seguimiento de estado en un esquema dedicado dentro de tu propia instancia Greenplum.

Configuración

1

Crear un usuario Census

Crea un usuario de base de datos dedicado para que OneSignal lo use:
-- Create CENSUS user and set password
CREATE USER CENSUS WITH PASSWORD '<strong unique password>';
2

Elegir tu motor de sincronización y configurar permisos

Para Basic Sync Engine (Acceso de solo lectura):Otorga acceso de lectura a tu esquema de datos de eventos. Reemplaza <your schema> con el nombre de tu esquema:
-- Let the census user read all existing tables in this schema
GRANT SELECT ON ALL TABLES IN SCHEMA "<your schema>" TO CENSUS;

-- Let the census user read any new tables added to this schema
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your schema>" GRANT SELECT ON TABLES TO CENSUS;

-- Let the census user execute any existing functions in this schema
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA "<your schema>" TO CENSUS;

-- Let the census user execute any new functions added to this schema
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your schema>" GRANT EXECUTE ON FUNCTIONS TO CENSUS;
Para Advanced Sync Engine (Rendimiento mejorado):Primero completa los pasos de Basic Sync Engine anteriores, luego agrega:
-- Create a private bookkeeping schema where Census can store sync state
CREATE SCHEMA CENSUS;

-- Give the census user full access to the bookkeeping schema
GRANT ALL ON SCHEMA CENSUS TO CENSUS;

-- Ensure the census user has access to any existing objects in the bookkeeping schema
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;

-- Let the census user see your data schema
GRANT USAGE ON SCHEMA "<your schema>" TO CENSUS;
3

Conectar a OneSignal

In OneSignal, go to Data > Integrations and click Add Integration.Selecciona Greenplum y proporciona:
  • Host: Tu host maestro de Greenplum
  • Port: 5432 (o puerto personalizado)
  • Database: El nombre de tu base de datos
  • Username: CENSUS
  • Password: Contraseña del Paso 1
  • Sync Engine: Elige Basic o Advanced basándote en el Paso 2

Event data mapping

Map your to OneSignal’s custom events format:
OneSignal FieldDescriptionRequired
nameevent_nameEvent identifierYes
external_iduser_idUser identifierYes
timestampevent_timestampWhen event occurredNo
propertiesevent_dataNo

Ejemplo de esquema de tabla de eventos

-- Example Greenplum event table
CREATE TABLE analytics.user_events (
    event_id BIGSERIAL,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    event_properties JSONB,
    session_id VARCHAR(255),
    device_type VARCHAR(50)
);

Modos de procesamiento

Modo de tabla

Sincroniza tablas o vistas completas directamente desde tu base de datos Greenplum. OneSignal mapeará automáticamente las columnas a campos de eventos.

Modo de consulta SQL

Escribe consultas personalizadas compatibles con PostgreSQL para transformar tus datos de eventos:
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM analytics.user_events
WHERE event_timestamp >= NOW() - INTERVAL '7 days'
    AND (event_properties->>'value')::NUMERIC > 100
ORDER BY event_timestamp DESC;

Optimización de consultas MPP

Aprovecha el procesamiento paralelo de Greenplum asegurándote de que tus consultas de eventos estén optimizadas para ejecución distribuida. Usa claves de distribución apropiadas y evita el movimiento de datos entre segmentos para mejor rendimiento.

Configuración de red avanzada

OneSignal puede conectarse exitosamente a instancias Greenplum que usan controles de red avanzados incluyendo restricciones de región, listas de permiso de direcciones IP o túneles SSH. Recomendamos configurar tu instancia Greenplum para usar TLS v1.2 o posterior para todas las conexiones.

Limitaciones

  • Las consultas analíticas grandes pueden impactar el rendimiento del clúster
  • Las operaciones JSON/JSONB deben optimizarse para distribución
  • Las uniones entre segmentos deben minimizarse para rendimiento

FAQ

¿Qué motor de sincronización debo elegir?

Usa el Basic Sync Engine si prefieres una configuración más simple y acceso de solo lectura. Elige el Advanced Sync Engine si necesitas rendimiento mejorado y puedes permitir que OneSignal cree tablas en tu instancia Greenplum.

¿Cómo optimizo consultas para la arquitectura MPP de Greenplum?

Asegúrate de que las consultas utilicen claves de distribución efectivamente, evita el movimiento innecesario de datos entre segmentos y aprovecha el almacenamiento columnar de Greenplum para análisis.

¿Puedo usar tablas externas de Greenplum para datos de eventos?

Sí, OneSignal puede leer desde tablas externas que referencian datos en formatos como Parquet o CSV almacenados en sistemas externos.