
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.
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)
1. Collecter les détails du SQL warehouse
Connectez-vous à votre espace de travail Databricks
Sélectionnez votre warehouse
Enregistrez les détails suivants
- Server Hostname
- Port
- HTTP Path

Détails de connexion SQL Databricks pour la configuration Fivetran
2. Créer un service principal
Accédez à la page Service Principals
Ajoutez un nouveau service principal
Nommez le service principal
onesignal-sync).
Modal pour ajouter un service principal, avec l'option 'Add new' mise en évidence
3. Générer un secret
Cliquez sur le principal créé
Accédez à l'onglet Secrets
Générez un secret

Modal 'Generate secret' de Databricks montrant le secret OAuth et l'ID client pour l'authentification API
4. Attribuer les permissions
Accédez à votre Catalogue et ouvrez l'onglet Permissions
Cliquez sur Grant
Attribuez les permissions suivantes au service principal
- USE CATALOG
- USE SCHEMA
- SELECT
- MODIFY
- CREATE SCHEMA
- CREATE TABLE

Écran d'attribution de privilèges pour un principal Databricks avec permissions de catalogue personnalisées sélectionnées.
5. Connecter OneSignal
Activez l'intégration
Entrez les détails
- Server Hostname
- Port
- HTTP Path
- Catalog Name
- Schema Name
- Identifiants du service principal (ID + Secret)

Formulaire de configuration Databricks OneSignal avec champs pour le catalogue, le nom d'hôte, le chemin HTTP et les identifiants OAuth.
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>etmessage_events(modifiable) - Types d’événements : choisissez ceux à synchroniser—sélectionnez tout ou seulement ce dont vous avez besoin
Sélectionnez les événements

É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.
Terminez la configuration
6. Voir les données dans Databricks
- Ouvrez votre Catalogue dans Databricks.
- Une fois la synchronisation terminée, votre schéma configuré apparaîtra.
-
Accédez à la table
message_eventset interrogez-la.
Vue du catalogue Databricks montrant la table des événements de message OneSignal sous un schéma de production.
-
Cliquez sur les tables pour un aperçu des données d’exemple.

Exemple de données de la table message_events_1 avec champs d'événements OneSignal synchronisés.
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_kind | Description |
|---|---|---|
| Push Sent | message.push.sent | Notification push envoyée avec succès. |
| Push Received | message.push.received | Push livrée (voir Confirmed Delivery). |
| Push Clicked | message.push.clicked | L’utilisateur a cliqué sur la push. |
| Push Failed | message.push.failed | Échec de la livraison. Voir les rapports de message. |
| Push Unsubscribed | message.push.unsubscribed | L’utilisateur s’est désabonné de la push. |
| In-App Impression | message.iam.displayed | Message In-App affiché. |
| In-App Clicked | message.iam.clicked | Message In-App cliqué. |
| In-App Page Viewed | message.iam.pagedisplayed | Page In-App affichée. |
| Email Sent | message.email.sent | Email livré. |
| Email Received | message.email.received | Email accepté par le serveur de messagerie du destinataire. |
| Email Opened | message.email.opened | Email ouvert. Voir Email Reports. |
| Email Link Clicked | message.email.clicked | Lien dans l’email cliqué. |
| Email Unsubscribed | message.email.unsubscribed | Destinataire désabonné. |
| Email Marked Spam | message.email.resporedasspam | Marqué comme spam. Voir Email Deliverability. |
| Email Bounced | message.email.hardbounced | Rebond dû à un échec de livraison permanent. |
| Email Failed | message.email.failed | Échec de la livraison. |
| Email Suppressed | message.email.supressed | Supprimé en raison de la liste de suppression. |
| SMS Sent | message.sms.sent | SMS envoyé. |
| SMS Delivered | message.sms.delivered | SMS livré avec succès. |
| SMS Failed | message.sms.failed | Échec de la livraison du SMS. |
| SMS Undelivered | message.sms.undelivered | SMS 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 colonne | Type | Description |
|---|---|---|
event_id | UUID | Identifiant unique de l’événement |
event_timestamp | Timestamp | Heure de l’occurrence de l’événement |
event_kind | String | Le Type d’événement |
subscription_device_type | String | Type d’appareil (par exemple, iOS, Android, Web, Email, SMS) |
language | String | Code de langue de l’abonnement |
version | String | Version de l’intégration |
device_os | String | Version du système d’exploitation de l’appareil |
device_type | Number | Type d’appareil numérique |
token | String | Jeton push, numéro de téléphone ou email |
subscription_id | UUID | ID d’abonnement |
subscribed | Boolean | Statut d’abonnement |
onesignal_id | UUID | ID utilisateur OneSignal |
last_active | String | Horodatage de dernière activité |
sdk | String | Version du SDK OneSignal |
external_id | String | ID utilisateur externe qui doit correspondre à l’ID utilisateur de l’intégration |
app_id | UUID | App ID de OneSignal |
template_id | UUID | Template ID (le cas échéant) |
message_id | UUID | ID du lot/requête de message |
message_name | String | Nom du message |
message_title | String | Titre du message (anglais uniquement) |
message_contents | String | Corps du message tronqué (anglais uniquement) |
_created, _id, _index, _fivetran_synced | Usage interne | Mé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
- 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)
Créer un Personal Access Token Databricks
- Accédez à User Settings dans votre espace de travail Databricks
- Cliquez sur l’onglet Developer puis Access tokens
- Cliquez sur Generate new token
- Entrez un commentaire comme “OneSignal Integration” et définissez l’expiration (recommandé 90 jours)
- Enregistrez le jeton généré (vous en aurez besoin pour OneSignal)
Configurer l'accès SQL Warehouse
- Accédez à SQL Warehouses dans votre espace de travail Databricks
- Sélectionnez ou créez un SQL Warehouse pour l’accès OneSignal
- Notez le Server Hostname et le HTTP Path depuis les détails de connexion
- Assurez-vous que le warehouse a accès à vos tables de données d’événements
Accorder les permissions de table
Ajouter l'intégration dans OneSignal
- 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
Configurer la source de 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
- Nom/type d’événement (String)
- Identifiant utilisateur (String)
- Horodatage de l’événement (Timestamp)
- Propriétés d’événements supplémentaires
Tester la connexion
Mappage des données d’événement
Mappez vos au format des événements personnalisés de OneSignal :| Champ OneSignal | Description | Requis | |
|---|---|---|---|
name | event_name | Identifiant de l’événement | Oui |
external_id | user_id | Identifiant de l’utilisateur | Oui |
timestamp | event_timestamp | Quand l’événement s’est produit | Non |
properties | event_data | Non |
Configuration avancée
Intégration Unity Catalog
Exploitez Unity Catalog pour un accès aux données gouverné :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_idetevent_namepour 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