Passer au contenu principal
OneSignal Databricks integration

Vue d'ensemble de l'intégration OneSignal Databricks


Vue d’ensemble

L’intégration OneSignal + Databricks prend en charge la synchronisation bidirectionnelle des données :
  • Exporter les événements de message OneSignal vers Databricks pour l’analyse, les tableaux de bord et les rapports.
  • Importer des événements personnalisés depuis Databricks vers OneSignal pour déclencher des Journeys et des campagnes personnalisées.
Utilisez cette intégration pour unifier vos données d’engagement et comportementales sur toutes les plateformes et piloter des stratégies de messagerie basées sur les données.

Exporter les événements OneSignal vers Databricks

Synchronisez les événements push, e-mail, in-app et SMS depuis OneSignal dans votre lakehouse Databricks pour des analyses et une visibilité en temps quasi réel. Prérequis
  • Plan Professional
  • Événements personnalisés activés (pour les importations d’événements)
  • Plateforme Databricks : AWS, Azure ou GCP
  • Plan Databricks : Premium ou supérieur
  • Databricks Unity Catalog (recommandé pour la gouvernance)
  • Databricks SQL Warehouse pour les requêtes
  • Tables d’événements Delta Lake (pour l’importation d’événements personnalisés)
Étapes de configuration

1. Collecter les détails du SQL warehouse

1

Connectez-vous à votre espace de travail Databricks

Accédez à SQL Warehouses dans votre espace de travail Databricks.
2

Sélectionnez votre warehouse

Sélectionnez votre warehouse et ouvrez l’onglet Connection details.
3

Enregistrez les détails suivants

  • Server Hostname
  • Port
  • HTTP Path
Databricks SQL connection details for Fivetran setup

Détails de connexion SQL Databricks pour la configuration Fivetran

2. Créer un service principal

1

Accédez à la page Service Principals

Accédez à Workspace Settings > Identity and Access > Service Principals.
2

Ajoutez un nouveau service principal

Cliquez sur Add Service Principal, puis Add New.
3

Nommez le service principal

Nommez-le (par ex., onesignal-sync).
Modal for adding a service principal, with the 'Add new' option highlighted

Modal pour ajouter un service principal, avec l'option 'Add new' mise en évidence

3. Générer un secret

1

Cliquez sur le principal créé

2

Accédez à l'onglet Secrets

3

Générez un secret

Cliquez sur Generate Secret et enregistrez-le en toute sécurité.
Le secret n’est visible qu’une seule fois—stockez-le en toute sécurité.
Databricks 'Generate secret' modal showing OAuth secret and client ID for API authentication

Modal 'Generate secret' de Databricks montrant le secret OAuth et l'ID client pour l'authentification API

4. Attribuer les permissions

1

Accédez à votre Catalogue et ouvrez l'onglet Permissions

2

Cliquez sur Grant

3

Attribuez les permissions suivantes au service principal

  • USE CATALOG
  • USE SCHEMA
  • SELECT
  • MODIFY
  • CREATE SCHEMA
  • CREATE TABLE
Privilege assignment screen for a Databricks principal with custom catalog permissions selected

Écran d'attribution de privilèges pour un principal Databricks avec permissions de catalogue personnalisées sélectionnées.

5. Connecter OneSignal

1

Activez l'intégration

Dans OneSignal, accédez à Data > Integrations > Databricks.
2

Entrez les détails

  • Server Hostname
  • Port
  • HTTP Path
  • Catalog Name
  • Schema Name
  • Identifiants du service principal (ID + Secret)
OneSignal Databricks Configuration form with fields for catalog, hostname, HTTP path, and OAuth credentials

Formulaire de configuration Databricks OneSignal avec champs pour le catalogue, le nom d'hôte, le chemin HTTP et les identifiants OAuth.

3

Configurez l'intégration

  • Fréquence de synchronisation : toutes les 15 minutes au minimum
  • Noms de jeu de données/table : prédéfinis comme onesignal_events_<app-id> et message_events (modifiable)
  • Types d’événements : choisissez ceux à synchroniser—sélectionnez tout ou seulement ce dont vous avez besoin
4

Sélectionnez les événements

Sélectionnez les événements que vous souhaitez recevoir dans votre catalogue Databricks.
OneSignal event export settings screen showing sync status, dataset configuration, and selected message event types

Écran des paramètres d'exportation d'événements OneSignal montrant l'état de synchronisation, la configuration du jeu de données et les types d'événements de message sélectionnés.

5

Terminez la configuration

Cliquez sur Save et attendez la confirmation de succès
La synchronisation initiale des données peut prendre 15 à 30 minutes avant d’apparaître dans BigQuery.En attendant, envoyez des messages via push, e-mail, in-app ou SMS pour déclencher les événements sélectionnés.

6. Voir les données dans Databricks

  1. Ouvrez votre Catalogue dans Databricks.
  2. Une fois la synchronisation terminée, votre schéma configuré apparaîtra.
  3. Accédez à la table message_events et interrogez-la.
    Databricks Catalog view showing OneSignal message events table under a production schema

    Vue du catalogue Databricks montrant la table des événements de message OneSignal sous un schéma de production.

  4. Cliquez sur les tables pour un aperçu des données d’exemple.
    Sample data from the message_events_1 table with synced OneSignal event fields

    Exemple de données de la table message_events_1 avec champs d'événements OneSignal synchronisés.

Si vous rencontrez des problèmes comme des schémas manquants, des erreurs de permission ou des événements mal formés, contactez support@onesignal.com.

Événements et propriétés de message

Types d’événements de message

Propriété : event_kind Type : String Le type de message et d’événement (par exemple message.push.received, message.push.sent).
Événement de message (OneSignal)event_kindDescription
Push Sentmessage.push.sentNotification push envoyée avec succès.
Push Receivedmessage.push.receivedPush livrée (voir Confirmed Delivery).
Push Clickedmessage.push.clickedL’utilisateur a cliqué sur la push.
Push Failedmessage.push.failedÉchec de la livraison. Voir les rapports de message.
Push Unsubscribedmessage.push.unsubscribedL’utilisateur s’est désabonné de la push.
In-App Impressionmessage.iam.displayedMessage In-App affiché.
In-App Clickedmessage.iam.clickedMessage In-App cliqué.
In-App Page Viewedmessage.iam.pagedisplayedPage In-App affichée.
Email Sentmessage.email.sentEmail livré.
Email Receivedmessage.email.receivedEmail accepté par le serveur de messagerie du destinataire.
Email Openedmessage.email.openedEmail ouvert. Voir Email Reports.
Email Link Clickedmessage.email.clickedLien dans l’email cliqué.
Email Unsubscribedmessage.email.unsubscribedDestinataire désabonné.
Email Marked Spammessage.email.resporedasspamMarqué comme spam. Voir Email Deliverability.
Email Bouncedmessage.email.hardbouncedRebond dû à un échec de livraison permanent.
Email Failedmessage.email.failedÉchec de la livraison.
Email Suppressedmessage.email.supressedSupprimé en raison de la liste de suppression.
SMS Sentmessage.sms.sentSMS envoyé.
SMS Deliveredmessage.sms.deliveredSMS livré avec succès.
SMS Failedmessage.sms.failedÉchec de la livraison du SMS.
SMS Undeliveredmessage.sms.undeliveredSMS rejeté ou injoignable.

Schéma des données d’événement

Pour chaque événement de message généré par un utilisateur, les métadonnées suivantes seront jointes à l’enregistrement.
Nom de colonneTypeDescription
event_idUUIDIdentifiant unique de l’événement
event_timestampTimestampHeure de l’occurrence de l’événement
event_kindStringLe Type d’événement
subscription_device_typeStringType d’appareil (par exemple, iOS, Android, Web, Email, SMS)
languageStringCode de langue de l’abonnement
versionStringVersion de l’intégration
device_osStringVersion du système d’exploitation de l’appareil
device_typeNumberType d’appareil numérique
tokenStringJeton push, numéro de téléphone ou email
subscription_idUUIDID d’abonnement
subscribedBooleanStatut d’abonnement
onesignal_idUUIDID utilisateur OneSignal
last_activeStringHorodatage de dernière activité
sdkStringVersion du SDK OneSignal
external_idStringID utilisateur externe qui doit correspondre à l’ID utilisateur de l’intégration
app_idUUIDApp ID de OneSignal
template_idUUIDTemplate ID (le cas échéant)
message_idUUIDID du lot/requête de message
message_nameStringNom du message
message_titleStringTitre du message (anglais uniquement)
message_contentsStringCorps du message tronqué (anglais uniquement)
_created, _id, _index, _fivetran_syncedUsage interneMétadonnées de synchronisation Fivetran

Notes

  • Les synchronisations après l’enregistrement/l’activation peuvent prendre 15 à 30 minutes supplémentaires pour se terminer.
  • La désactivation peut toujours entraîner une dernière synchronisation finale après la désactivation.
  • Pour garantir une synchronisation efficace des données, notre système crée et gère automatiquement des ensembles de données intermédiaires. Ces ensembles de données, nommés selon un modèle comme fivetran_{deux mots aléatoires}_staging, stockent temporairement les données pendant le traitement avant qu’elles ne soient intégrées dans votre schéma principal. Ces ensembles de données intermédiaires sont essentiels pour maintenir un flux de travail rationalisé et ne doivent pas être supprimés, car ils seront automatiquement recréés.

Importer des événements depuis Databricks

Envoyez des données d’événements comportementaux depuis Databricks vers OneSignal pour :
  • Déclencher des Journeys basés sur l’activité de l’utilisateur
  • Personnaliser les messages en fonction des données comportementales
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)
  • Espace de travail Databricks avec SQL Warehouse ou cluster de calcul
  • Personal Access Token avec les permissions appropriées
  • Tables de données d’événements contenant des données comportementales au format Delta Lake
  • Unity Catalog (recommandé pour la gouvernance des données)
Étapes de configuration
1

Créer un Personal Access Token Databricks

Générez un Personal Access Token pour que OneSignal puisse accéder à votre espace de travail Databricks :
  1. Accédez à User Settings dans votre espace de travail Databricks
  2. Cliquez sur l’onglet Developer puis Access tokens
  3. Cliquez sur Generate new token
  4. Entrez un commentaire comme “OneSignal Integration” et définissez l’expiration (recommandé 90 jours)
  5. Enregistrez le jeton généré (vous en aurez besoin pour OneSignal)
2

Configurer l'accès SQL Warehouse

Assurez-vous que OneSignal peut interroger vos données d’événements via SQL Warehouse :
  1. Accédez à SQL Warehouses dans votre espace de travail Databricks
  2. Sélectionnez ou créez un SQL Warehouse pour l’accès OneSignal
  3. Notez le Server Hostname et le HTTP Path depuis les détails de connexion
  4. Assurez-vous que le warehouse a accès à vos tables de données d’événements
3

Accorder les permissions de table

Accordez à OneSignal l’accès en lecture aux tables contenant les données d’événements :
-- For Unity Catalog enabled workspaces
GRANT SELECT ON TABLE catalog.schema.event_table TO `onesignal@yourdomain.com`;

-- For Hive metastore tables
GRANT SELECT ON TABLE database.event_table TO `onesignal@yourdomain.com`;
4

Ajouter l'intégration dans OneSignal

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.Sélectionnez Databricks et fournissez :
  • Server Hostname : Le nom d’hôte de votre SQL Warehouse Databricks
  • HTTP Path : Chemin HTTP du SQL Warehouse
  • Personal Access Token : Jeton créé à l’étape 1
  • Catalog (optionnel) : Nom du Unity Catalog si vous utilisez Unity Catalog
5

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

Spécifiez la table Databricks contenant vos données d’événements :
  • Database/Schema : Nom de la base de données ou du schéma contenant les tables d’événements
  • Table : Nom de la table avec les enregistrements d’événements (par ex., user_events)
  • Event Query : 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 de l’événement (Timestamp)
  • Propriétés d’événements supplémentaires
6

Tester la connexion

Cliquez sur Test Connection pour vérifier que OneSignal peut accéder à votre espace de travail Databricks 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

Intégration Unity Catalog

Exploitez Unity Catalog pour un accès aux données gouverné :
SELECT
  event_name,
  user_id,
  event_timestamp,
  to_json(
    named_struct(
      'product_id', product_id,
      'purchase_amount', purchase_amount,
      'category', category
    )
  ) as payload
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp() - INTERVAL 7 DAYS

Optimisation Delta Lake

Optimisez les tables d’événements pour de meilleures performances de requête :
  • Partitionnement : Partitionnez par date (event_date) pour des requêtes temporelles plus rapides
  • Z-Ordering : Z-order par user_id et event_name pour un meilleur filtrage
  • Fonctionnalités Delta Lake : Utilisez le liquid clustering pour une optimisation automatique

Traitement des événements en streaming

Pour le traitement des événements en temps réel, envisagez :
  • Structured Streaming : Traitez les événements au fur et à mesure de leur arrivée
  • Delta Live Tables : Construisez des pipelines de traitement d’événements robustes
  • Auto Loader : Ingérez continuellement de nouveaux fichiers d’événements
Assurez-vous que votre SQL Warehouse dispose de ressources de calcul suffisantes pour gérer les requêtes de OneSignal sans affecter les autres charges de travail.

FAQ

Pourquoi vois-je différents ID de message avec le même contenu ?

Cela se produit lorsque le même message est envoyé plus d’une fois, probablement via un flux transactionnel ou un modèle de message réutilisé sur plusieurs envois.

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

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

Puis-je utiliser les notebooks Databricks pour le traitement des événements ?

Oui, vous pouvez utiliser des notebooks pour traiter et préparer les données d’événements, puis les exposer via des tables que OneSignal peut interroger.

Qu’en est-il de l’optimisation des coûts pour les requêtes d’événements ?

Envisagez d’utiliser des SQL Warehouses serverless pour un calcul rentable et à la demande qui s’adapte automatiquement en fonction de la charge de requête.