

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Herstellen einer Verbindung mit Pendo
<a name="connecting-to-pendo"></a>

Pendo bietet einen umfangreichen Datenspeicher für Benutzerinteraktionsdaten. Kunden übertragen diese Daten an, AWS sodass sie sie mit anderen Produktdaten verknüpfen, zusätzliche Analysen und Dashboards durchführen und Benachrichtigungen einrichten können, falls sie dies wünschen.

**Topics**
+ [AWS Glue Unterstützung für Pendo](pendo-support.md)
+ [Richtlinien, welche die API-Vorgänge für die Erstellung und Verwendung von Verbindungen enthalten](pendo-configuring-iam-permissions.md)
+ [Konfigurieren von Pendo](pendo-configuring.md)
+ [Konfiguration von Pendo-Verbindungen](pendo-configuring-connections.md)
+ [Lesen aus Pendo-Entitäten](pendo-reading-from-entities.md)
+ [Pendo-Verbindungsoptionen](pendo-connection-options.md)
+ [Einschränkungen](pendo-connector-limitations.md)

# AWS Glue Unterstützung für Pendo
<a name="pendo-support"></a>

AWS Glue unterstützt Pendo wie folgt:

**Als Quelle unterstützt?**  
Ja. Sie können AWS Glue ETL-Jobs verwenden, um Daten von Pendo abzufragen.

**Als Ziel unterstützt?**  
Nein.

**Unterstützte Pendo-API-Versionen**  
 v1 

# Richtlinien, welche die API-Vorgänge für die Erstellung und Verwendung von Verbindungen enthalten
<a name="pendo-configuring-iam-permissions"></a>

Die folgende Beispielrichtlinie beschreibt die erforderlichen AWS Berechtigungen für das Erstellen und Verwenden von Verbindungen. Wenn Sie eine neue Rolle erstellen, erstellen Sie eine Richtlinie, die Folgendes enthält: 

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

****  

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

------

Wenn Sie die vorstehende Methode nicht verwenden möchten, verwenden Sie alternativ die folgenden verwalteten IAM-Richtlinien:
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Gewährt Zugriff auf Ressourcen, die verschiedene AWS Glue Prozesse benötigen, um in Ihrem Namen ausgeführt zu werden. Zu diesen Ressourcen gehören AWS Glue Amazon S3, IAM, CloudWatch Logs und Amazon EC2. Wenn Sie die in dieser Richtlinie angegebene Benennungskonvention für Ressourcen einhalten, verfügen AWS Glue Prozesse über die erforderlichen Berechtigungen. Diese Richtlinie wird typischerweise mit Rollen verknüpft, die bei der Definition von Crawlern, Aufträgen und Entwicklungsendpunkten angegeben werden. 
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Gewährt vollen Zugriff auf AWS Glue Ressourcen, wenn eine Identität, an die die Richtlinie angehängt ist, die AWS Managementkonsole verwendet. Wenn Sie die Namenskonvention für Ressourcen befolgen, die in dieser Richtlinie angegeben sind, haben Benutzer alle Konsolenfunktionalitäten. Diese Richtlinie wird in der Regel Benutzern der AWS Glue Konsole zugewiesen. 

# Konfigurieren von Pendo
<a name="pendo-configuring"></a>

Bevor Sie AWS Glue den Transfer von Pendo verwenden können, müssen Sie die folgenden Voraussetzungen erfüllen:

## Mindestanforderungen
<a name="pendo-configuring-min-requirements"></a>
+ Sie haben ein Pendo-Konto mit `apiKey` und `write access` ist aktiviert.
+  Ihr Pendo-Konto verfügt über API-Zugriff mit einer gültigen Lizenz. 

Wenn du diese Voraussetzungen erfüllst, bist du bereit, dich mit deinem Pendo-Konto AWS Glue zu verbinden. Für typische Verbindungen müssen Sie in Pendo nichts weiter tun.

# Konfiguration von Pendo-Verbindungen
<a name="pendo-configuring-connections"></a>

Pendo unterstützt benutzerdefinierte Authentifizierung.

Die öffentliche Pendo-Dokumentation zur Generierung der erforderlichen API-Schlüssel für die benutzerdefinierte Autorisierung finden Sie unter [Authentifizierung – Dokumentation zur Pendo-REST-API](https://engageapi.pendo.io/?bash#getting-started). 

Konfigurieren einer Pendo-Verbindung:

1. Erstellen Sie in AWS Secrets Manager ein Secret mit den folgenden Details: 
   + Für die kundenseitig verwaltete verbundene App – Geheimnis muss das Verbrauchergeheimnis der verbundenen App mit `apiKey` als Schlüssel enthalten. 
**Anmerkung**  
Sie müssen für jede Verbindung in AWS Glue ein Geheimnis erstellen.

1. Erstellen Sie in AWS Glue Studio unter **Datenverbindungen** eine Verbindung, indem Sie die folgenden Schritte ausführen:

   1. Wählen Sie bei der Auswahl einer **Datenquelle** Pendo aus.

   1. Geben Sie die `instanceUrl` der Pendo-Instance an, mit der Sie eine Verbindung herstellen möchten.

   1. Wählen Sie die IAM-Rolle aus, für die AWS Glue Sie die folgenden Aktionen übernehmen können und über Berechtigungen verfügen: 

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

****  

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

------

   1. Wählen Sie `secretName` die aus, die Sie für diese Verbindung verwenden möchten AWS Glue , um die Token einzufügen. 

   1.  Wählen Sie die Netzwerkoptionen aus, wenn Sie Ihr Netzwerk verwenden möchten. 

1. Erteilen Sie der mit Ihrem AWS Glue Job verknüpften IAM-Rolle `secretName` Leserechte. 

1. Stellen `connectionName` Sie in Ihrer AWS Glue Jobkonfiguration eine zusätzliche Netzwerkverbindung bereit.

# Lesen aus Pendo-Entitäten
<a name="pendo-reading-from-entities"></a>

 **Voraussetzungen** 

Ein Pendo-Objekt, aus dem gelesen werden soll. In der folgenden Tabelle mit unterstützten Entitäten können Sie die verfügbaren Entitäten überprüfen. 

 **Unterstützte Entitäten** 
+ [Merkmal](https://developers.pendo.io/docs/?bash#feature)
+ [Leitfaden](https://developers.pendo.io/docs/?bash#guide)
+ [Seite](https://developers.pendo.io/docs/?bash#page)
+ [Bericht](https://developers.pendo.io/docs/?bash#report)
+ [Berichtdaten](https://developers.pendo.io/docs/?bash#return-report-contents-as-array-of-json-objects)
+ [Besucher](https://developers.pendo.io/docs/?bash#visitor)
+ [Account](https://developers.pendo.io/docs/?bash#entities)
+ [Veranstaltung](https://developers.pendo.io/docs/?bash#events-grouped)
+ [Feature-Ereignis](https://developers.pendo.io/docs/?bash#events-grouped)
+ [Handbuchereignis](https://developers.pendo.io/docs/?bash#events-ungrouped)
+ [Seitenereignis](https://developers.pendo.io/docs/?bash#events-grouped)
+ [Umfrageereignis](https://developers.pendo.io/docs/?bash#events-ungrouped)
+ [Verfolgungsereignis](https://developers.pendo.io/docs/?bash#events-grouped)


| Entität | Kann gefiltert werden | Unterstützt Limit | Unterstützt „Sortieren nach“ | Unterstützt „\$1 auswählen“ | Unterstützt Partitionierung | 
| --- | --- | --- | --- | --- | --- | 
| Feature | Nein | Nein | Nein | Ja | Nein | 
| Richtlinie | Nein | Nein | Nein | Ja | Nein | 
| Seite | Nein | Nein | Nein | Ja | Nein | 
| Bericht | Nein | Nein | Nein | Ja | Nein | 
| Berichtdaten | Nein | Nein | Nein | Ja | Nein | 
| Besucher (Aggregation-API) | Ja | Nein | Ja | Ja | Nein | 
| Konto (Aggregation-API) | Ja | Nein | Ja | Ja | Nein | 
| Ereignis (Aggregation-API) | Ja | Nein | Ja | Ja | Nein | 
| Feature-Ereignis (Aggregation-API) | Ja | Nein | Ja | Ja | Ja | 
| Handbuchereignis (Aggregation-API) | Ja | Nein | Ja | Ja | Ja | 
| Konto (Aggregation-API) | Ja | Nein | Ja | Ja | Ja | 
| Seitenereignis (Aggregation-API) | Ja | Nein | Ja | Ja | Ja | 
| Umfrageereignis (Aggregation-API) | Ja | Nein | Ja | Ja | Ja | 
| Verfolgungsereignis (Aggregation-API) | Ja | Nein | Ja | Ja | Ja | 

 **Beispiel** 

```
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"
    }
```

## Partitionierung von Abfragen
<a name="adobe-marketo-engage-reading-partitioning-queries"></a>

Sie können die zusätzlichen Spark-Optionen `PARTITION_FIELD`,`LOWER_BOUND`, `UPPER_BOUND` und `NUM_PARTITIONS` angeben, wenn Sie Parallelität in Spark nutzen möchten. Mit diesen Parametern wird die ursprüngliche Abfrage in `NUM_PARTITIONS` Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können.
+ `PARTITION_FIELD`: der Name des Feldes, das zur Partitionierung der Abfrage verwendet werden soll.
+ `LOWER_BOUND`: ein **inklusiver** Untergrenzwert des ausgewählten Partitionsfelds.

  Für das DateTime Feld akzeptieren wir den Wert im ISO-Format.

  Beispiel für gültigen Wert:

  ```
  "2024-07-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND`: ein **exklusiver** Obergrenzwert des ausgewählten Partitionsfelds.
+ `NUM_PARTITIONS`: die Anzahl der Partitionen.

In der folgenden Tabelle sind Details zur Unterstützung der Partitionierung von Entitäten beschrieben:


| Entitätsname | 
| --- | 
| Veranstaltung | 
|  Feature-Ereignis  | 
| Handbuchereignis | 
| Seitenereignis | 
| Umfrageereignis | 
| Verfolgungsereignis | 

Beispiel:

```
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"
    }
```

# Pendo-Verbindungsoptionen
<a name="pendo-connection-options"></a>

Im Folgenden sind Verbindungsoptionen für Pendo aufgeführt:
+  `ENTITY_NAME` (Zeichenfolge) – (Erforderlich) Zum Lesen/Schreiben verwendet. Der Name Ihres Objekts in Pendo. 
+ `INSTANCE_URL`(Zeichenfolge) – (Erforderlich) Eine gültige Pendo-Instance-URL mit den folgenden zulässigen Werten:
  + [Standard](https://app.pendo.io/)
  + [Europa](https://app.eu.pendo.io/)
  + [US1](https://us1.app.pendo.io/)
+ `API_VERSION` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Version der Pendo-REST-API, die Sie verwenden möchten. Beispiel: 3.0.
+ `SELECTED_FIELDS` (Liste<Zeichenfolge>) – Standard: leer(SELECT \$1). Zum Lesen verwendet. Spalten, die Sie für das Objekt auswählen möchten.
+ `FILTER_PREDICATE`(Zeichenfolge) – Standard: leer. Zum Lesen verwendet. Muss das Spark-SQL-Format aufweisen.
+ `QUERY`(Zeichenfolge) – Standard: leer Zum Lesen verwendet. Vollständige Spark-SQL-Abfrage.
+ `PARTITION_FIELD`(Zeichenfolge) – Zum Lesen verwendet. Feld, das zur Partitionierung der Abfrage verwendet werden soll.
+ `LOWER_BOUND`(Zeichenfolge) – Zum Lesen verwendet. Ein inklusiver Untergrenzwert des ausgewählten Partitionsfelds.
+ `UPPER_BOUND`(Zeichenfolge) – Zum Lesen verwendet. Ein exklusiver Obergrenzwert des ausgewählten Partitionsfelds. 
+ `NUM_PARTITIONS`(Ganzzahl) – Standard: 1. Zum Lesen verwendet. Anzahl der zu lesenden Partitionen.

# Einschränkungen
<a name="pendo-connector-limitations"></a>

Die folgenden Einschränkungen gelten für den Pendo-Connector:
+ Paginierung wird in Pendo nicht unterstützt.
+ Filterung wird nur von den Aggregate-API-Objekten (`Account`, `Event`, `Feature Event`, `Guide Events`, `Page Event`, `Poll Event`, `Track Event` und `Visitor`) unterstützt.
+ DateTimeRange ist ein obligatorischer Filterparameter für Aggregate-API-Objekte (`Event``Feature Event`,`Guide Events`,,`Page Event`, `Poll Event,``Track Event`)
+ Der dayRange-Zeitraum wird auf den Beginn des Zeitraums in der Zeitzone abgerundet. Wenn beispielsweise der Filter `2023-01-12T07:55:27.065Z` angegeben ist, wird dieser Zeitraum auf den Anfang des Zeitraums gerundet, d. h. `2023-01-12T00:00:00Z`. 