Passer au contenu principal

Aperçu

L’intégration OneSignal + Greenplum permet la synchronisation d’événements personnalisés de votre base de données Greenplum vers OneSignal pour déclencher des campagnes de messagerie automatisées et des Journeys basés sur le comportement des utilisateurs. Greenplum est une base de données à traitement massivement parallèle (MPP) construite sur PostgreSQL, conçue pour les charges de travail d’analyse à grande échelle.

Prérequis

  • Accès aux Event Streams pour les événements de message sortants (Les limitations de forfait et les dépassements s’appliquent)
  • Accès aux Événements personnalisés pour la synchronisation des événements entrants (Les limitations de forfait et les dépassements s’appliquent)
  • Forfait de compte mis à jour (non disponible sur les applications gratuites)

Greenplum

  • Instance Greenplum avec accès réseau
  • Utilisateur de base de données avec les autorisations appropriées
  • Tables d’événements contenant des données comportementales structurées

Moteurs de synchronisation et autorisations

OneSignal lit les données des tables et des vues dans Greenplum et les synchronise pour déclencher des campagnes de messagerie automatisées. Pour limiter la charge sur votre base de données, OneSignal maintient des tables de suivi d’état qui lui permettent de synchroniser uniquement les données qui ont été modifiées depuis la dernière synchronisation (synchronisations incrémentielles). Lors de la configuration de votre connexion Greenplum, vous choisirez un moteur de synchronisation qui détermine comment le suivi d’état est géré. Le moteur de synchronisation basique maintient les tables de suivi d’état sur l’infrastructure appartenant à OneSignal et est plus simple à configurer, ne nécessitant qu’un accès en lecture seule. Le moteur de synchronisation avancé offre des performances améliorées en maintenant les tables de suivi d’état dans un schéma dédié au sein de votre propre instance Greenplum.

Configuration

1

Créer un utilisateur Census

Créez un utilisateur de base de données dédié pour OneSignal :
-- Create CENSUS user and set password
CREATE USER CENSUS WITH PASSWORD '<strong unique password>';
2

Choisir votre moteur de synchronisation et configurer les autorisations

Pour le moteur de synchronisation basique (Accès en lecture seule) :Accordez un accès en lecture à votre schéma de données d’événements. Remplacez <your schema> par le nom de votre schéma :
-- 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;
Pour le moteur de synchronisation avancé (Performances améliorées) :Complétez d’abord les étapes du moteur de synchronisation basique ci-dessus, puis ajoutez :
-- 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

Se connecter à OneSignal

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.Sélectionnez Greenplum et fournissez :
  • Host : Votre hôte maître Greenplum
  • Port : 5432 (ou port personnalisé)
  • Database : Le nom de votre base de données
  • Username : CENSUS
  • Password : Mot de passe de l’étape 1
  • Sync Engine : Choisissez Basique ou Avancé en fonction de l’étape 2

Mappage des données d’événement

Mappez vos au format des événements personnalisés de OneSignal :
Champ OneSignalDescriptionRequis
nameevent_nameIdentifiant de l’événementOui
external_iduser_idIdentifiant de l’utilisateurOui
timestampevent_timestampQuand l’événement s’est produitNon
propertiesevent_dataNon

Exemple de schéma de table d’événements

-- 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)
);

Modes de traitement

Mode Table

Synchronisez des tables ou des vues entières directement depuis votre base de données Greenplum. OneSignal mappera automatiquement les colonnes aux champs d’événements.

Mode Requête SQL

Écrivez des requêtes personnalisées compatibles PostgreSQL pour transformer vos données d’événements :
-- 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;

Optimisation des requêtes MPP

Profitez du traitement parallèle de Greenplum en vous assurant que vos requêtes d’événements sont optimisées pour une exécution distribuée. Utilisez des clés de distribution appropriées et évitez les mouvements de données entre segments pour de meilleures performances.

Configuration réseau avancée

OneSignal peut se connecter avec succès aux instances Greenplum qui utilisent des contrôles réseau avancés, y compris les contraintes de région, les listes d’autorisation d’adresses IP ou le tunneling SSH. Nous recommandons de configurer votre instance Greenplum pour utiliser TLS v1.2 ou ultérieur pour toutes les connexions.

Limitations

  • Les requêtes analytiques volumineuses peuvent impacter les performances du cluster
  • Les opérations JSON/JSONB doivent être optimisées pour la distribution
  • Les jointures entre segments doivent être minimisées pour les performances

FAQ

Quel moteur de synchronisation dois-je choisir ?

Utilisez le moteur de synchronisation basique si vous préférez une configuration plus simple et un accès en lecture seule. Choisissez le moteur de synchronisation avancé si vous avez besoin de performances améliorées et pouvez autoriser OneSignal à créer des tables dans votre instance Greenplum.

Comment optimiser les requêtes pour l’architecture MPP de Greenplum ?

Assurez-vous que les requêtes utilisent les clés de distribution efficacement, évitez les mouvements de données inutiles entre les segments et tirez parti du stockage en colonnes de Greenplum pour l’analyse.

Puis-je utiliser les tables externes de Greenplum pour les données d’événements ?

Oui, OneSignal peut lire à partir de tables externes qui référencent des données dans des formats comme Parquet ou CSV stockées dans des systèmes externes.