

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Connexion à Pendo
<a name="connecting-to-pendo"></a>

Pendo fournit un entrepôt de données enrichi pour les données d’interaction avec les utilisateurs. Les clients transféreront ces données AWS afin de les associer à d'autres données sur le produit, d'effectuer des analyses et des tableaux de bord supplémentaires et de définir des alertes s'ils le souhaitent.

**Topics**
+ [AWS Glue support pour Pendo](pendo-support.md)
+ [Politiques contenant les opérations API pour la création et l’utilisation des connexions](pendo-configuring-iam-permissions.md)
+ [Configuration de Pendo](pendo-configuring.md)
+ [Configuration de connexions Pendo](pendo-configuring-connections.md)
+ [Lecture à partir d’entités Pendo](pendo-reading-from-entities.md)
+ [Options de connexion Pendo](pendo-connection-options.md)
+ [Limitations](pendo-connector-limitations.md)

# AWS Glue support pour Pendo
<a name="pendo-support"></a>

AWS Glue prend en charge Pendo comme suit :

**Prise en charge en tant que source ?**  
Oui. Vous pouvez utiliser les tâches AWS Glue ETL pour interroger les données de Pendo.

**Prise en charge en tant que cible ?**  
Non.

**Versions de l’API Pendo prises en charge**  
 v1 

# Politiques contenant les opérations API pour la création et l’utilisation des connexions
<a name="pendo-configuring-iam-permissions"></a>

L'exemple de politique suivant décrit les AWS autorisations requises pour créer et utiliser des connexions. Si vous créez un rôle, créez une politique contenant les éléments suivants : 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Si vous ne voulez pas utiliser la méthode ci-dessus, vous pouvez également utiliser les politiques IAM gérées suivantes :
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Accorde l'accès aux ressources dont AWS Glue les différents processus ont besoin pour s'exécuter en votre nom. Ces ressources incluent AWS Glue Amazon S3, IAM, CloudWatch Logs et Amazon EC2. Si vous suivez la convention de dénomination des ressources spécifiée dans cette politique, AWS Glue les processus disposent des autorisations requises. Cette politique est généralement attachée aux rôles spécifiés lorsque vous définissez les crawlers, les tâches et les points de terminaison de développement. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Accorde un accès complet aux AWS Glue ressources lorsqu'une identité à laquelle la politique est attachée utilise la console AWS de gestion. Si vous suivez la convention de dénomination pour les ressources spécifiées dans la politique, les utilisateurs bénéficient des capacités totales de la console. Cette politique s'applique généralement aux utilisateurs de la AWS Glue console. 

# Configuration de Pendo
<a name="pendo-configuring"></a>

Avant de pouvoir AWS Glue effectuer un transfert depuis Pendo, vous devez satisfaire aux exigences suivantes :

## Configuration requise
<a name="pendo-configuring-min-requirements"></a>
+ Vous possédez un compte Pendo avec une `apiKey` avec `write access` activé.
+  Votre compte Pendo dispose d’un accès à l’API avec une licence valide. 

Si vous répondez à ces exigences, vous êtes prêt à vous connecter AWS Glue à votre compte Pendo. Pour les connexions classiques, vous n’avez rien d’autre à faire dans Pendo.

# Configuration de connexions Pendo
<a name="pendo-configuring-connections"></a>

Pendo prend en charge l’authentification personnalisée.

Pour consulter la documentation publique de Pendo sur la génération des clés d’API requises pour une autorisation personnalisée, consultez [Authentication – Pendo REST API Documentation](https://engageapi.pendo.io/?bash#getting-started) 

Pour configurer une connexion Pendo :

1. Dans AWS Secrets Manager, créez un secret avec les informations suivantes : 
   + Pour l’application connectée gérée par le client, le secret doit contenir le secret du consommateur de l’application connectée avec `apiKey` comme clé. 
**Note**  
Il est indispensable de créer un secret par connexion dans AWS Glue.

1. Dans AWS Glue Studio, créez une connexion sous **Connexions de données** en suivant les étapes ci-dessous :

   1. Lorsque vous sélectionnez une **source de données**, sélectionnez Pendo.

   1. Indiquez l’`instanceUrl` de l’instance Pendo à laquelle vous souhaitez vous connecter.

   1. Sélectionnez le rôle IAM pour lequel AWS Glue vous pouvez assumer et qui dispose des autorisations nécessaires pour effectuer les actions suivantes : 

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Sélectionnez celui `secretName` que vous souhaitez utiliser pour cette connexion AWS Glue afin d'y placer les jetons. 

   1.  Sélectionnez les options réseau si vous souhaitez utiliser votre réseau. 

1. Accordez au rôle IAM associé à votre AWS Glue travail l'autorisation de lire`secretName`. 

1. Dans la configuration de votre AWS Glue tâche, fournissez `connectionName` une connexion réseau supplémentaire.

# Lecture à partir d’entités Pendo
<a name="pendo-reading-from-entities"></a>

 **Conditions préalables** 

Un objet Pendo à partir duquel vous souhaitez lire. Reportez-vous au tableau des entités prises en charge ci-dessous pour vérifier les entités disponibles. 

 **Entités prises en charge** 
+ [Fonctionnalité](https://developers.pendo.io/docs/?bash#feature)
+ [Guide](https://developers.pendo.io/docs/?bash#guide)
+ [Page](https://developers.pendo.io/docs/?bash#page)
+ [Rapport](https://developers.pendo.io/docs/?bash#report)
+ [Report Data](https://developers.pendo.io/docs/?bash#return-report-contents-as-array-of-json-objects)
+ [Visitor](https://developers.pendo.io/docs/?bash#visitor)
+ [Compte](https://developers.pendo.io/docs/?bash#entities)
+ [Event](https://developers.pendo.io/docs/?bash#events-grouped)
+ [Feature Event](https://developers.pendo.io/docs/?bash#events-grouped)
+ [Guide Event](https://developers.pendo.io/docs/?bash#events-ungrouped)
+ [Page Event](https://developers.pendo.io/docs/?bash#events-grouped)
+ [Poll Event ](https://developers.pendo.io/docs/?bash#events-ungrouped)
+ [Track Event](https://developers.pendo.io/docs/?bash#events-grouped)


| Entité | Peut être filtré | Limit prise en charge | Order by prise en charge | Select prise en charge\$1 | Partitionnement pris en charge | 
| --- | --- | --- | --- | --- | --- | 
| Fonctionnalité | Non | Non | Non | Oui | Non | 
| Guide | Non | Non | Non | Oui | Non | 
| Page | Non | Non | Non | Oui | Non | 
| Rapport | Non | Non | Non | Oui | Non | 
| Report Data | Non | Non | Non | Oui | Non | 
| Visitor (Aggregation API) | Oui | Non | Oui | Oui | Non | 
| Account (Aggregation API) | Oui | Non | Oui | Oui | Non | 
| Event (Aggregation API) | Oui | Non | Oui | Oui | Non | 
| Feature Event (Aggregation API) | Oui | Non | Oui | Oui | Oui | 
| Guide Event (Aggregation API) | Oui | Non | Oui | Oui | Oui | 
| Account (Aggregation API) | Oui | Non | Oui | Oui | Oui | 
| Page Event (Aggregation API) | Oui | Non | Oui | Oui | Oui | 
| Poll Event (Aggregation API) | Oui | Non | Oui | Oui | Oui | 
| Track Event (Aggregation API) | Oui | Non | Oui | Oui | Oui | 

 **Exemple** 

```
Pendo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="glue.spark.Pendo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "feature",
        "API_VERSION": "v1",
        "INSTANCE_URL": "instanceUrl"
    }
```

## Requêtes de partitionnement
<a name="adobe-marketo-engage-reading-partitioning-queries"></a>

Vous pouvez indiquer les options Spark supplémentaires `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` et `NUM_PARTITIONS` si vous souhaitez utiliser la simultanéité dans Spark. Avec ces paramètres, la requête d’origine serait divisée en `NUM_PARTITIONS` nombres de sous-requêtes pouvant être exécutées simultanément par les tâches Spark.
+ `PARTITION_FIELD` : le nom du champ à utiliser pour partitionner la requête.
+ `LOWER_BOUND` : une valeur limite inférieure **inclusive** du champ de partition choisi.

  Pour le DateTime champ, nous acceptons la valeur au format ISO.

  Exemple de valeur valide :

  ```
  "2024-07-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND` : une valeur limite supérieure **exclusive** du champ de partition choisi.
+ `NUM_PARTITIONS` : le nombre de partitions.

Le tableau suivant décrit les détails de prise en charge dans les champs de partitionnement d’entités :


| Nom de l'entité | 
| --- | 
| Event | 
|  Feature Event  | 
| Guide Event | 
| Page Event | 
| Poll Event | 
| Track Event | 

Exemple :

```
pendo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="glue.spark.pendo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "event",
        "API_VERSION": "v1",
        "INSTANCE_URL": "instanceUrl"
        "NUM_PARTITIONS": "10",
        "PARTITION_FIELD": "appId"
        "LOWER_BOUND": "4656"
        "UPPER_BOUND": "7788"
    }
```

# Options de connexion Pendo
<a name="pendo-connection-options"></a>

Les options de connexion pour Pendo sont les suivantes :
+  `ENTITY_NAME`(Chaîne) - (Obligatoire) Utilisé pour la lecture/l’écriture. Le nom de votre objet dans Pendo. 
+ `INSTANCE_URL`(Chaîne) - (Obligatoire) Une URL d’instance Pendo valide avec les valeurs autorisées suivantes :
  + [Par défaut](https://app.pendo.io/)
  + [L'Europe](https://app.eu.pendo.io/)
  + [US1](https://us1.app.pendo.io/)
+ `API_VERSION`(Chaîne) - (Obligatoire) Utilisé pour la lecture. Version d’API Rest de Pendo Engage que vous souhaitez utiliser. Par exemple : 3.0.
+ `SELECTED_FIELDS`(Liste<Chaîne>) - Par défaut : vide (SELECT \$1). Utilisé pour la lecture. Colonnes que vous souhaitez sélectionner pour l’objet.
+ `FILTER_PREDICATE`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Doit être au format SQL Spark.
+ `QUERY`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Requête Spark SQL complète.
+ `PARTITION_FIELD`(Chaîne) - Utilisé pour la lecture. Champ à utiliser pour partitionner la requête.
+ `LOWER_BOUND`(Chaîne) - Utilisé pour la lecture. Une valeur limite inférieure inclusive du champ de partition choisi.
+ `UPPER_BOUND`(Chaîne) - Utilisé pour la lecture. Une valeur limite supérieure exclusive du champ de partition choisi. 
+ `NUM_PARTITIONS`(Entier) - Par défaut : 1. Utilisé pour la lecture. Nombre de partitions pour la lecture.

# Limitations
<a name="pendo-connector-limitations"></a>

Les restrictions du connecteur Pendo sont les suivantes :
+ La pagination n’est pas prise en charge dans Pendo.
+ La filtration est prise en charge uniquement par les objets de l’API Aggregate (`Account`, `Event`, `Feature Event`, `Guide Events`, `Page Event`, `Poll Event`, `Track Event` et `Visitor`).
+ DateTimeRange est un paramètre de filtre obligatoire pour les objets de l'API Aggregate (`Event``Feature Event`,`Guide Events`,`Page Event`,, `Poll Event,``Track Event`)
+ La période dayRange sera arrondie au début de la période dans le fuseau horaire. Par exemple, si le filtre fourni est `2023-01-12T07:55:27.065Z`, cette période sera arrondie au début de la période, c’est-à-dire `2023-01-12T00:00:00Z`. 