Passer au contenu principal

Vue d’ensemble

L’intégration OneSignal + Azure Synapse permet la synchronisation d’événements personnalisés depuis votre espace de travail Azure Synapse Analytics vers OneSignal pour déclencher des campagnes de messagerie automatisées et des Journeys basés sur le comportement des utilisateurs. Azure Synapse Analytics est le service d’analyse cloud de Microsoft qui combine l’intégration de données, l’entreposage de données et l’analyse.

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)

Azure Synapse

  • Espace de travail Azure Synapse avec accès au pool SQL
  • Utilisateur de base de données avec les permissions appropriées
  • Tables d’événements contenant des données comportementales structurées
  • Accès pare-feu pour les adresses IP de OneSignal

Configuration

1

Créer une connexion dédiée pour OneSignal

Créez une connexion et un compte utilisateur dédiés avec un mot de passe fort et unique :
USE <your-database>;

-- Create census login with the ability to sign in with a password
CREATE LOGIN CENSUS WITH PASSWORD = '<strong-unique-password>';

-- Create user for the login
CREATE USER CENSUS FOR LOGIN CENSUS;

-- Give the census user the ability to connect to database
GRANT CONNECT TO CENSUS;
Remplacez <your-database> par le nom réel de votre base de données contenant les données d’événements.
2

Accorder les permissions de lecture

Fournissez un accès en lecture seule à vos données d’événements :
-- Give the census user the ability to read all tables
EXEC sp_addrolemember 'db_datareader', CENSUS;

-- Grant census user ability to read schema and data
-- Run this for each schema you intend OneSignal to access
GRANT SELECT, VIEW DEFINITION ON SCHEMA::<your-schema> TO CENSUS;
Remplacez <your-schema> par le nom réel de votre schéma contenant les données d’événements. Répétez cette commande pour chaque schéma auquel vous souhaitez que OneSignal accède.
3

Configurer l'accès pare-feu

Configurez le pare-feu Azure Synapse pour autoriser les adresses IP de OneSignal.Utilisez le portail de gestion Windows Azure ou exécutez sp_set_firewall_rule sur la base de données principale :
-- Example: Add firewall rule for OneSignal IP range
EXEC sp_set_firewall_rule
    N'OneSignal Access',
    'ONESIGNAL_IP_START',
    'ONESIGNAL_IP_END';
Contactez le support OneSignal pour obtenir les plages d’adresses IP actuelles pour votre région.
4

Se connecter à OneSignal

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.Sélectionnez Azure Synapse et fournissez les détails de connexion suivants :
  • Hôte : Le nom d’hôte de votre point de terminaison SQL Synapse
  • Port : 1433 (par défaut)
  • Base de données : Le nom de votre base de données
  • Nom d’utilisateur : CENSUS
  • Mot de passe : Le mot de passe de l’étape 1

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

Exemple de schéma de table d’événements

-- Example Azure Synapse event table
CREATE TABLE analytics.user_events (
    event_id BIGINT IDENTITY(1,1) PRIMARY KEY,
    event_name NVARCHAR(100) NOT NULL,
    user_id NVARCHAR(255) NOT NULL,
    event_timestamp DATETIME2 DEFAULT GETUTCDATE(),
    event_data NVARCHAR(MAX),
    session_id NVARCHAR(255),
    device_type NVARCHAR(50)
)
WITH (DISTRIBUTION = HASH(user_id), CLUSTERED COLUMNSTORE INDEX);

Mode de requête SQL

Écrivez des requêtes SQL personnalisées pour transformer vos données d’événements :
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, GETUTCDATE())
    AND JSON_VALUE(event_data, '$.value') > 100
ORDER BY event_timestamp DESC;

Fonctionnalités spécifiques à Azure

Architecture distribuée

  • Événements distribués par user_id pour des performances de requête optimales
  • Index columnstore en cluster pour les charges de travail analytiques
  • Traitement massivement parallèle (MPP) pour les données d’événements à grande échelle

Intégration avec l’écosystème Azure

  • Connexion à Azure Data Factory pour des pipelines d’événements automatisés
  • Intégration avec Azure Event Hubs pour le streaming d’événements en temps réel
  • Utilisation d’Azure Active Directory pour l’authentification

Configuration réseau avancée

OneSignal peut se connecter avec succès aux instances Azure Synapse qui utilisent des contrôles de réseau avancés, notamment les contraintes régionales, les listes d’autorisation d’adresses IP ou le tunneling SSH. Pour plus d’informations sur la configuration de l’accès réseau, contactez votre administrateur Azure Synapse ou le support OneSignal.

Limitations

  • Basé sur le protocole de connexion du pilote JDBC SQL Server
  • Nécessite des règles de pare-feu explicites pour les adresses IP de OneSignal
  • Les requêtes complexes peuvent avoir un impact sur les performances et les coûts du pool SQL
  • Les opérations JSON nécessitent une indexation soigneuse pour des performances optimales

FAQ

Puis-je me connecter à plusieurs schémas Azure Synapse ?

Oui, vous pouvez accorder à l’utilisateur CENSUS l’accès à plusieurs schémas en exécutant l’instruction GRANT SELECT, VIEW DEFINITION ON SCHEMA::<schema> pour chaque schéma contenant des données d’événements.

Comment configurer l’accès pare-feu pour OneSignal ?

Utilisez le portail de gestion Azure ou sp_set_firewall_rule pour ajouter les adresses IP de OneSignal. Contactez le support OneSignal pour obtenir les plages IP actuelles.

Quelle est la différence entre l’intégration Azure Synapse et SQL Server ?

Azure Synapse utilise le même pilote JDBC SQL Server mais inclut des fonctionnalités d’architecture distribuée et nécessite une configuration de pare-feu spécifique pour l’accès cloud.