> ## 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.

# Trino

> Synchronisez les événements personnalisés depuis Trino 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 = "Trino"

export const COLUMN_HEADER_0 = "Trino Column"

export const PROPERTIES_DESCRIPTION_0 = "Event metadata as JSON"

## Aperçu

L'intégration OneSignal + Trino permet la synchronisation d'événements personnalisés depuis votre cluster Trino vers OneSignal pour déclencher des campagnes de messagerie automatisées et des Journeys basés sur le comportement des utilisateurs.

Trino est un moteur de requêtes SQL distribué conçu pour exécuter des requêtes analytiques rapides sur de grands ensembles de données provenant de plusieurs sources.

***

## Exigences

* 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)

### Trino

* **Cluster Trino** avec accès réseau
* **Identifiants utilisateur** avec les autorisations appropriées
* Prise en charge de **connexion TLS** (requis par OneSignal)
* **Données d'événements** accessibles via les catalogues Trino

***

## Configuration

<Steps>
  <Step title="Configurer la connexion Trino">
    Dans OneSignal, allez dans **Data > Integrations** et cliquez sur **Add Integration**.

    Sélectionnez **Trino** et fournissez les détails de connexion suivants :

    * **Hôte :** Le nom d'hôte de votre cluster Trino
    * **Nom d'utilisateur :** Votre nom d'utilisateur Trino
    * **Mot de passe :** Votre mot de passe Trino
    * **Port :** 443 (par défaut) ou votre port personnalisé

    <Info>
      OneSignal nécessite une connexion TLS à Trino. Si votre instance ne fonctionne pas sur le port 443, spécifiez votre port personnalisé.
    </Info>
  </Step>

  <Step title="Configurer le moteur de synchronisation avancé (Optionnel)">
    Pour des performances améliorées, configurez un catalogue CENSUS dédié :

    1. Créez un catalogue nommé `CENSUS` contenant un schéma nommé `CENSUS`
    2. Assurez-vous que votre connecteur prend en charge :
       * Les opérations `CREATE TABLE` et `DROP TABLE`
       * Les écritures de table (INSERT, DELETE, UPDATE)
       * L'instruction `CREATE OR REPLACE TABLE`
    3. Accordez toutes les autorisations sur le schéma `CENSUS.CENSUS` à votre utilisateur OneSignal

    <Info>
      Les configurations testées incluent les connecteurs MySQL, PostgreSQL, Snowflake, Iceberg et Delta Lake.
    </Info>
  </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    |

### Example Event Query

```sql theme={null}
-- Example: Recent high-value events across catalogs
SELECT
    event_name,
    user_id,
    event_timestamp,
    CAST(event_properties AS JSON) as event_properties
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp - INTERVAL '7' DAY
    AND JSON_EXTRACT_SCALAR(event_properties, '$.value') > '100'
ORDER BY event_timestamp DESC;
```

### Cross-Catalog Event Queries

```sql theme={null}
-- Example: Federated query across multiple data sources
SELECT
    'combined_activity' as event_name,
    u.user_id,
    current_timestamp as event_timestamp,
    JSON_FORMAT(JSON_OBJECT(
        'web_sessions', w.session_count,
        'mobile_events', m.event_count,
        'purchase_value', p.total_value
    )) as event_properties
FROM postgres_catalog.users.profiles u
LEFT JOIN web_catalog.analytics.sessions w ON u.user_id = w.user_id
LEFT JOIN mobile_catalog.events.activities m ON u.user_id = m.user_id
LEFT JOIN purchases_catalog.orders.summary p ON u.user_id = p.user_id
WHERE u.created_date >= current_date - INTERVAL '30' DAY;
```

***

## Options du moteur de synchronisation

### Moteur de synchronisation de base

* Fonctionne avec n'importe quel catalogue et connecteur Trino
* Suivi de l'état géré par l'infrastructure OneSignal
* Configuration plus simple sans exigences supplémentaires

### Moteur de synchronisation avancé

* Performances améliorées avec suivi d'état local
* Nécessite un catalogue et un schéma `CENSUS.CENSUS` dédiés
* Prend en charge les connecteurs avec opérations d'écriture de table
* Recommandé pour le traitement d'événements à haut volume

***

## Connecteurs pris en charge

Le moteur de synchronisation avancé de OneSignal a été testé avec :

* **Connecteur MySQL** (mode lecture-écriture)
* **Connecteur PostgreSQL** (mode lecture-écriture)
* **Connecteur Snowflake** (mode lecture-écriture)
* **Connecteur Iceberg** (avec S3 et AWS Glue)
* **Connecteur Delta Lake** (avec catalogues AWS Glue et Starburst Galaxy)

***

## Limitations

* Connexion TLS requise (exigence de sécurité OneSignal)
* Le moteur de synchronisation avancé nécessite la prise en charge de `CREATE OR REPLACE TABLE` (Trino octobre 2023+)
* Warehouse Writeback pas encore pris en charge (prochainement)
* Impossible de fournir des options de table personnalisées dans la clause `WITH`

***

## FAQ

### Quels connecteurs Trino fonctionnent avec OneSignal ?

Tout connecteur prenant en charge les opérations de lecture fonctionne avec le moteur de synchronisation de base. Pour le moteur de synchronisation avancé, vous avez besoin de connecteurs prenant en charge les écritures de table et `CREATE OR REPLACE TABLE`.

### Puis-je interroger plusieurs catalogues en une seule synchronisation ?

Oui ! Les capacités de requête fédérée de Trino vous permettent de combiner des données d'événements provenant de plusieurs sources (PostgreSQL, MySQL, S3, etc.) en une seule requête.

### Ai-je besoin du moteur de synchronisation avancé ?

Non, le moteur de synchronisation de base fonctionne bien pour la plupart des cas d'utilisation. Utilisez le moteur de synchronisation avancé si vous avez besoin de performances améliorées et pouvez configurer le catalogue `CENSUS.CENSUS` requis.
