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

# Amazon Athena

> Synchronisez les événements personnalisés depuis Amazon Athena vers OneSignal pour déclencher des parcours automatisés et des campagnes de messagerie personnalisées basées sur le comportement des utilisateurs.

export const DATA_TYPE_0 = "colonnes de table"

export const PLATFORM_0 = "Athena"

export const COLUMN_HEADER_0 = "Colonne Athena"

export const PROPERTIES_DESCRIPTION_0 = "Métadonnées d'événements provenant du lac de données S3"

## Présentation

L'intégration OneSignal + Amazon Athena permet la synchronisation automatique des événements personnalisés depuis votre lac de données Athena directement vers l'API Custom Events de OneSignal. Cela vous permet de déclencher des parcours automatisés et des campagnes de messagerie personnalisées basées sur le comportement réel des utilisateurs stocké dans votre infrastructure de données AWS.

Vous pouvez synchroniser des événements tels que des achats, des consultations de produits, des changements d'abonnement, ou toute action utilisateur personnalisée pour déclencher automatiquement des séquences d'intégration, des campagnes de réengagement, des messages transactionnels et des promotions ciblées via les notifications push, les e-mails, les messages in-app et les SMS.

***

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

### Amazon Athena

* **Compte AWS** avec accès à Athena
* **Groupe de travail Athena** configuré (par défaut : "primary")
* **Bucket S3 pour les résultats de requêtes** pour les sorties de requêtes Athena
* **Autorisations IAM** pour l'accès à Athena, S3 et AWS Glue
* **Données d'événements** stockées dans S3 et cataloguées dans AWS Glue

***

## Configuration

### Configurer les autorisations AWS

OneSignal a besoin d'autorisations spécifiques pour interroger vos données d'événements via Athena. Créez une politique IAM avec les autorisations suivantes :

<Steps>
  <Step title="Créer une politique IAM">
    Créez une politique IAM qui inclut ces autorisations :

    ```json theme={null}
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "athena:StartQueryExecution",
                    "athena:GetQueryExecution",
                    "athena:GetQueryResultsStream",
                    "athena:GetQueryResults",
                    "athena:CreatePreparedStatement",
                    "athena:DeletePreparedStatement",
                    "glue:GetTable",
                    "glue:GetTables",
                    "glue:GetDatabase",
                    "glue:GetDatabases",
                    "s3:PutObject",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:GetBucketLocation"
                ],
                "Resource": [
                    "arn:aws:glue:<region>:<aws-account-id>:table/<database>/*",
                    "arn:aws:glue:<region>:<aws-account-id>:database/<database>",
                    "arn:aws:glue:<region>:<aws-account-id>:catalog",
                    "arn:aws:athena:<region>:<aws-account-id>:workgroup/<workgroup>",
                    "arn:aws:s3:::<query-results-bucket>",
                    "arn:aws:s3:::<query-results-bucket>/*",
                    "arn:aws:s3:::<event-data-bucket>",
                    "arn:aws:s3:::<event-data-bucket>/*"
                ]
            }
        ]
    }
    ```

    <Info>
      Remplacez les espaces réservés par votre région AWS réelle, votre ID de compte, le nom de votre base de données, le groupe de travail et les noms de buckets.
    </Info>
  </Step>

  <Step title="Créer un utilisateur ou un rôle IAM">
    Créez un utilisateur IAM pour OneSignal et attachez la politique créée ci-dessus, ou préparez-vous à utiliser l'accès basé sur les rôles.
  </Step>

  <Step title="Noter les détails de connexion">
    Collectez les informations suivantes :

    * **ID de clé d'accès AWS** et **Clé d'accès secrète** (si vous utilisez un utilisateur IAM)
    * URL du **Bucket de résultats de requêtes S3**
    * **Région AWS**
    * **Groupe de travail Athena** (par défaut : "primary")
  </Step>
</Steps>

### Configurer la connexion OneSignal Athena

<Steps>
  <Step title="Accéder aux intégrations">
    Dans OneSignal, allez dans **Data > Integrations** et cliquez sur **Add Integration**.
  </Step>

  <Step title="Sélectionner Amazon Athena">
    Choisissez **Amazon Athena** dans la liste des intégrations disponibles.
  </Step>

  <Step title="Saisir les détails de connexion">
    Fournissez vos informations de connexion Athena :

    * **ID de clé d'accès AWS** : Votre clé d'accès utilisateur IAM
    * **Clé d'accès secrète AWS** : Votre clé secrète utilisateur IAM
    * **Région AWS** : Votre région Athena
    * **Bucket de résultats de requêtes S3** : URL pour les sorties de requêtes
    * **Groupe de travail Athena** : Le nom de votre groupe de travail
  </Step>

  <Step title="Tester la connexion">
    Cliquez sur **Tester la connexion** pour vérifier que OneSignal peut accéder à votre instance Athena et exécuter des requêtes.
  </Step>
</Steps>

### Alternative : Accès basé sur les rôles

Pour une sécurité renforcée, vous pouvez utiliser des rôles IAM au lieu de clés d'accès :

<Steps>
  <Step title="Activer l'accès basé sur les rôles">
    Dans les paramètres de connexion Athena, cochez **Utiliser un rôle** et laissez les clés d'accès vides.
  </Step>

  <Step title="Créer un rôle IAM">
    Dans la console AWS, créez un rôle IAM avec :

    * **Entité de confiance** : Un autre compte AWS
    * **ID de compte** : `341876425553` (compte AWS de OneSignal)
    * **ID externe** : L'ID affiché dans OneSignal (apparaît après la première tentative de connexion)
    * **Autorisations** : La politique IAM créée ci-dessus
  </Step>

  <Step title="Finaliser la connexion">
    Saisissez l'ARN du rôle dans OneSignal et testez la connexion.
  </Step>
</Steps>

***

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

Une fois connecté, vous devrez mapper vos tables Athena aux champs d'événements personnalisés OneSignal :

<Steps>
  <Step title="Sélectionner les tables d'événements">
    Choisissez les tables ou vues contenant vos données d'événements que vous souhaitez synchroniser avec OneSignal.
  </Step>

  <Step title="Mapper les champs d'événements requis">
    Mappez les champs requis pour les événements personnalisés :

    * **Nom de l'événement** : Colonne contenant le type d'événement (par exemple, "achat", "inscription")
    * **Identifiant utilisateur** : Colonne ID utilisateur externe, E-mail ou Numéro de téléphone
    * **Horodatage de l'événement** : Moment où l'événement s'est produit (facultatif)
  </Step>

  <Step title="Mapper les données de charge utile de l'événement">
    Mappez les colonnes supplémentaires aux propriétés de charge utile de l'événement :

    * Propriétés d'événements personnalisées (product\_id, price, category, etc.)
    * Données contextuelles (source, campaign, etc.)
    * Métriques comportementales (value, quantity, etc.)
  </Step>

  <Step title="Configurer les paramètres de synchronisation">
    Définissez la fréquence de traitement des événements et les préférences de livraison.
  </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    |

***

## Limitations

* **Performance des requêtes** : Athena facture par requête et données analysées - optimisez vos tables d'événements
* **Dépendances S3** : Nécessite des buckets S3 et un catalogue Glue correctement configurés
* **Fraîcheur des données** : La fréquence de synchronisation des événements dépend de la fréquence de mise à jour de vos données S3

***

## FAQ

### Que se passe-t-il si mes requêtes Athena échouent ?

OneSignal enregistrera les erreurs de requête et retentera les requêtes échouées. Vérifiez vos autorisations IAM et l'accès à votre bucket S3 si vous rencontrez des échecs persistants.

### À quelle fréquence OneSignal synchronise-t-il les événements ?

OneSignal vérifie les nouveaux événements en fonction de la fréquence de synchronisation configurée, avec un intervalle minimum de 15 minutes.

***

## Besoin d'aide ?

Contactez notre équipe d'assistance à `support@onesignal.com` ou utilisez le chat intégré pour obtenir de l'aide avec la configuration de votre intégration Athena.
