> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure Synapse

> Synchronisez les événements personnalisés d'Azure Synapse vers OneSignal pour déclencher des Journeys automatisés et des campagnes de messagerie personnalisées basées sur le comportement des utilisateurs.

export const DATA_TYPE_0 = "event data"

export const PLATFORM_0 = "Azure Synapse"

export const COLUMN_HEADER_0 = "Synapse Column"

export const PROPERTIES_DESCRIPTION_0 = "Event metadata as JSON string"

## 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](/docs/en/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](/docs/en/custom-events) pour la synchronisation des événements entrants (Les limitations de forfait et les dépassements s'appliquent)
* [Forfait de compte mis à jour](https://onesignal.com/pricing) (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

<Steps>
  <Step title="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 :

    ```sql theme={null}
    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;
    ```

    <Info>
      Remplacez `<your-database>` par le nom réel de votre base de données contenant les données d'événements.
    </Info>
  </Step>

  <Step title="Accorder les permissions de lecture">
    Fournissez un accès en lecture seule à vos données d'événements :

    ```sql theme={null}
    -- 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;
    ```

    <Info>
      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.
    </Info>
  </Step>

  <Step title="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 :

    ```sql theme={null}
    -- Example: Add firewall rule for OneSignal IP range
    EXEC sp_set_firewall_rule
        N'OneSignal Access',
        'ONESIGNAL_IP_START',
        'ONESIGNAL_IP_END';
    ```

    <Warning>
      Contactez le support OneSignal pour obtenir les plages d'adresses IP actuelles pour votre région.
    </Warning>
  </Step>

  <Step title="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
  </Step>
</Steps>

***

### Mappage des données d'événement

Mappez vos {DATA_TYPE_0} {PLATFORM_0} au format des événements personnalisés de OneSignal :

| Champ OneSignal | {COLUMN_HEADER_0} | 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`      | {PROPERTIES_DESCRIPTION_0}      | Non    |

### Exemple de schéma de table d'événements

```sql theme={null}
-- 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 :

```sql theme={null}
-- 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.
