Passer au contenu principal

Vue d’ensemble

L’intégration OneSignal + ClickHouse permet la synchronisation automatique des événements personnalisés depuis votre base de données analytique ClickHouse vers OneSignal. Cela vous permet de déclencher des parcours automatisés et des campagnes de messagerie personnalisées basées sur les données comportementales des utilisateurs stockées dans votre base de données en colonnes haute performance.

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)

ClickHouse

  • Serveur ClickHouse (auto-hébergé ou cloud)
  • Identifiants de base de données avec accès en lecture aux tables d’événements
  • Tables de données d’événements contenant des données comportementales avec un schéma approprié

Configuration

1

Créer un utilisateur ClickHouse pour OneSignal

Créez un compte utilisateur dédié pour OneSignal avec un accès en lecture seule à vos tables d’événements :
CREATE USER onesignal_reader IDENTIFIED BY 'strong_password';
GRANT SELECT ON event_database.* TO onesignal_reader;
2

Configurer l'accès réseau

Assurez-vous que OneSignal peut se connecter à votre instance ClickHouse :
  • Auto-hébergé : Autorisez les connexions depuis les adresses IP de OneSignal
  • ClickHouse Cloud : Ajoutez les IP OneSignal à votre liste autorisée
  • Port : Le port ClickHouse par défaut est 8123 (HTTP) ou 9000 (natif)
3

Ajouter l'intégration dans OneSignal

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.Sélectionnez ClickHouse et fournissez :
  • Hôte : Le nom d’hôte ou l’IP de votre serveur ClickHouse
  • Port : Port ClickHouse (par défaut : 8123 pour HTTP, 9000 pour natif)
  • Base de données : Nom de la base de données contenant les tables d’événements
  • Nom d’utilisateur : onesignal_reader (ou votre nom d’utilisateur choisi)
  • Mot de passe : Mot de passe pour l’utilisateur ClickHouse
  • Protocole : HTTP ou Natif (HTTP recommandé pour la simplicité)
4

Configurer la source de données d'événements

Spécifiez la table ClickHouse contenant vos données d’événements :
  • Table : Nom de la table contenant les enregistrements d’événements (par ex., user_events)
  • Requête d’événement : Requête SQL optionnelle pour filtrer ou transformer les données d’événements
Votre table d’événements doit contenir des colonnes pour :
  • Nom/type d’événement (String)
  • Identifiant utilisateur (String)
  • Horodatage d’événement (DateTime)
  • Propriétés d’événement supplémentaires (JSON ou colonnes individuelles)
5

Tester la connexion

Cliquez sur Tester la connexion pour vérifier que OneSignal peut accéder à votre base de données ClickHouse et lire les données d’événements.

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

Configuration avancée

Requêtes SQL personnalisées

Utilisez du SQL personnalisé pour filtrer ou transformer les données d’événements avant de les synchroniser vers 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

Optimisation des performances

ClickHouse est optimisé pour les requêtes analytiques. Considérez :
  • Partitionnement : Utilisez le partitionnement basé sur les dates sur l’horodatage d’événement
  • Indexation : Créez des index appropriés sur user_id et event_name
  • Vues matérialisées : Pré-agrégez les données d’événements pour des requêtes plus rapides
ClickHouse est optimisé pour les charges de travail en ajout uniquement. Assurez-vous que vos données d’événements suivent ce modèle pour de meilleures performances.

FAQ

À quelle fréquence OneSignal synchronise-t-il les événements depuis ClickHouse ?

OneSignal synchronise les données d’événements en fonction de votre planning configuré, avec un intervalle minimum de 15 minutes.

Puis-je synchroniser des événements depuis plusieurs tables ClickHouse ?

Oui, vous pouvez créer plusieurs intégrations pour différentes tables ou utiliser des requêtes UNION pour combiner des données de plusieurs tables.