Passer au contenu principal

Aperçu

L’intégration OneSignal + Trino permet la synchronisation d’événements personnalisés depuis votre cluster Trino vers OneSignal pour déclencher des campagnes de messagerie automatisées et des Journeys basés sur le comportement des utilisateurs. Trino est un moteur de requêtes SQL distribué conçu pour exécuter des requêtes analytiques rapides sur de grands ensembles de données provenant de plusieurs sources.

Exigences

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

Trino

  • Cluster Trino avec accès réseau
  • Identifiants utilisateur avec les autorisations appropriées
  • Prise en charge de connexion TLS (requis par OneSignal)
  • Données d’événements accessibles via les catalogues Trino

Configuration

1

Configurer la connexion Trino

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.Sélectionnez Trino et fournissez les détails de connexion suivants :
  • Hôte : Le nom d’hôte de votre cluster Trino
  • Nom d’utilisateur : Votre nom d’utilisateur Trino
  • Mot de passe : Votre mot de passe Trino
  • Port : 443 (par défaut) ou votre port personnalisé
OneSignal nécessite une connexion TLS à Trino. Si votre instance ne fonctionne pas sur le port 443, spécifiez votre port personnalisé.
2

Configurer le moteur de synchronisation avancé (Optionnel)

Pour des performances améliorées, configurez un catalogue CENSUS dédié :
  1. Créez un catalogue nommé CENSUS contenant un schéma nommé CENSUS
  2. Assurez-vous que votre connecteur prend en charge :
    • Les opérations CREATE TABLE et DROP TABLE
    • Les écritures de table (INSERT, DELETE, UPDATE)
    • L’instruction CREATE OR REPLACE TABLE
  3. Accordez toutes les autorisations sur le schéma CENSUS.CENSUS à votre utilisateur OneSignal
Les configurations testées incluent les connecteurs MySQL, PostgreSQL, Snowflake, Iceberg et Delta Lake.

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

Example Event Query

-- Example: Recent high-value events across catalogs
SELECT
    event_name,
    user_id,
    event_timestamp,
    CAST(event_properties AS JSON) as event_properties
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp - INTERVAL '7' DAY
    AND JSON_EXTRACT_SCALAR(event_properties, '$.value') > '100'
ORDER BY event_timestamp DESC;

Cross-Catalog Event Queries

-- Example: Federated query across multiple data sources
SELECT
    'combined_activity' as event_name,
    u.user_id,
    current_timestamp as event_timestamp,
    JSON_FORMAT(JSON_OBJECT(
        'web_sessions', w.session_count,
        'mobile_events', m.event_count,
        'purchase_value', p.total_value
    )) as event_properties
FROM postgres_catalog.users.profiles u
LEFT JOIN web_catalog.analytics.sessions w ON u.user_id = w.user_id
LEFT JOIN mobile_catalog.events.activities m ON u.user_id = m.user_id
LEFT JOIN purchases_catalog.orders.summary p ON u.user_id = p.user_id
WHERE u.created_date >= current_date - INTERVAL '30' DAY;

Options du moteur de synchronisation

Moteur de synchronisation de base

  • Fonctionne avec n’importe quel catalogue et connecteur Trino
  • Suivi de l’état géré par l’infrastructure OneSignal
  • Configuration plus simple sans exigences supplémentaires

Moteur de synchronisation avancé

  • Performances améliorées avec suivi d’état local
  • Nécessite un catalogue et un schéma CENSUS.CENSUS dédiés
  • Prend en charge les connecteurs avec opérations d’écriture de table
  • Recommandé pour le traitement d’événements à haut volume

Connecteurs pris en charge

Le moteur de synchronisation avancé de OneSignal a été testé avec :
  • Connecteur MySQL (mode lecture-écriture)
  • Connecteur PostgreSQL (mode lecture-écriture)
  • Connecteur Snowflake (mode lecture-écriture)
  • Connecteur Iceberg (avec S3 et AWS Glue)
  • Connecteur Delta Lake (avec catalogues AWS Glue et Starburst Galaxy)

Limitations

  • Connexion TLS requise (exigence de sécurité OneSignal)
  • Le moteur de synchronisation avancé nécessite la prise en charge de CREATE OR REPLACE TABLE (Trino octobre 2023+)
  • Warehouse Writeback pas encore pris en charge (prochainement)
  • Impossible de fournir des options de table personnalisées dans la clause WITH

FAQ

Quels connecteurs Trino fonctionnent avec OneSignal ?

Tout connecteur prenant en charge les opérations de lecture fonctionne avec le moteur de synchronisation de base. Pour le moteur de synchronisation avancé, vous avez besoin de connecteurs prenant en charge les écritures de table et CREATE OR REPLACE TABLE.

Puis-je interroger plusieurs catalogues en une seule synchronisation ?

Oui ! Les capacités de requête fédérée de Trino vous permettent de combiner des données d’événements provenant de plusieurs sources (PostgreSQL, MySQL, S3, etc.) en une seule requête.

Ai-je besoin du moteur de synchronisation avancé ?

Non, le moteur de synchronisation de base fonctionne bien pour la plupart des cas d’utilisation. Utilisez le moteur de synchronisation avancé si vous avez besoin de performances améliorées et pouvez configurer le catalogue CENSUS.CENSUS requis.