Vue d’ensemble
L’intégration OneSignal + Databricks prend en charge deux flux :- Exporter : Envoyez les événements de message OneSignal vers Databricks pour l’analyse et les rapports.
- Importer : Envoyez les événements personnalisés depuis Databricks vers OneSignal pour déclencher des Journeys et personnaliser les campagnes.
L’exportation et l’importation sont configurées séparément. Vous pouvez configurer l’une sans l’autre.
Exporter les événements de message OneSignal vers Databricks
Synchronisez tous vos événements de message depuis OneSignal dans votre lakehouse Databricks pour des analyses et une visibilité en temps quasi réel. Prérequis- Plan Professional ou supérieur
- É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
Accédez à SQL Warehouses dans votre espace de travail Databricks.
2. Créer un service principal
Accédez à la page Service Principals
Accédez à Workspace Settings > Identity and Access > Service Principals.
3. Générer un secret
4. Attribuer les permissions
5. Connecter OneSignal
Entrez les détails
- Server Hostname
- Port
- HTTP Path
- Catalog Name
- Schema Name
- Identifiants du service principal (ID + Secret)

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
Sélectionnez les événements que vous souhaitez recevoir dans votre catalogue Databricks.

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
- 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.
-
Cliquez sur les tables pour un aperçu des données d’exemple.

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_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.impression | Message In-App affiché. |
| In-App Clicked | message.iam.clicked | Message In-App cliqué. |
| In-App Page Viewed | message.iam.page_displayed | 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 Reported As Spam | message.email.reported_as_spam | Marqué comme spam. Voir Email Deliverability. |
| Email Bounced | message.email.bounced | Rebond dû à un échec de livraison permanent. |
| Email Failed | message.email.failed | Échec de la livraison. |
| Email Suppressed | message.email.suppressed | 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) |
failure_reason | String | Raison d’échec (pour les événements d’échec de push et d’email) |
_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
Générez un Personal Access Token pour que OneSignal puisse accéder à votre espace de travail 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
Assurez-vous que OneSignal peut interroger vos données d’événements via 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
Accordez à OneSignal l’accès en lecture aux tables contenant les données d’événements :
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
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
- Nom/type d’événement (String)
- Identifiant utilisateur (String)
- Horodatage de l’événement (Timestamp)
- Propriétés d’événements supplémentaires
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



