

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 Domo
<a name="connecting-to-data-domo"></a>

Domo ist ein cloudbasiertes Dashboarding-Tool. Mit der Unternehmensanwendungsplattform von Domo verfügen Sie über die erforderliche Grundlage, um Domo zu erweitern, sodass Sie Ihre individuellen Lösungen schneller erstellen können.

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

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

AWS Glue unterstützt Domo wie folgt:

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

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

**Unterstützte Domo-API-Versionen**  
Die folgenden Domo-API-Versionen werden unterstützt:
+ v1

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

Die folgende Beispielrichtlinie beschreibt die erforderlichen AWS IAM-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 oben genannte 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, der die Richtlinie zugeordnet 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 normalerweise Benutzern der AWS Glue Konsole zugewiesen.

# Konfigurieren von Domo
<a name="domo-configuring"></a>

Bevor Sie Daten von Domo AWS Glue zu unterstützten Zielen übertragen können, müssen Sie die folgenden Anforderungen erfüllen:

## Mindestanforderungen
<a name="domo-configuring-min-requirements"></a>

Die folgenden Anforderungen sind Mindestanforderungen:
+ Sie haben ein Domo-Konto, das für den API-Zugriff aktiviert ist.
+ In Ihrem Domo-Entwicklerkonto befindet sich eine App, die die Kundenanmeldedaten bereitstellt, die für den sicheren Zugriff auf Ihre Daten AWS Glue verwendet werden, wenn authentifizierte Anrufe an Ihr Konto getätigt werden. Weitere Informationen finden Sie unter [Erstellen einer Domo-Entwickler-App](#domo-configuring-creating-developer-app).

Wenn Sie diese Anforderungen erfüllen, können Sie eine Verbindung AWS Glue zu Ihrem Domo-Konto herstellen.

## Erstellen einer Domo-Entwickler-App
<a name="domo-configuring-creating-developer-app"></a>

Um die Client-ID und das Client-Geheimnis zu erhalten, erstellen Sie ein Entwicklerkonto.

1. Gehen Sie zur [Domo-Anmeldeseite für Entwickler](https://developer.domo.com/manage-clients).

1. Wählen Sie **Login (Anmelden)** aus.

1. Geben Sie den Domainnamen ein und klicken Sie auf **Weiter**.

1. Bewegen Sie den Mauszeiger auf **Mein Konto** und wählen Sie **Neuer Kunde** aus.

1. Geben Sie den Namen und die Beschreibung ein. Wählen Sie den Bereich („Daten“) aus und klicken Sie auf **Erstellen**.

1. Rufen Sie die generierte **Client-ID** und das generierte **Client-Geheimnis** von dem neu erstellten Client ab.

# Konfiguration von Domo-Verbindungen
<a name="domo-configuring-connections"></a>

Domo unterstützt den Grant-Typ CLIENT\$1CREDENTIALS für. OAuth2
+ Dieser Gewährungstyp wird als zweigliedrig betrachtet, OAuth da sich nur die Client-Anwendung beim Server authentifiziert, ohne dass der Benutzer involviert ist.
+ Benutzer können sich dafür entscheiden, ihre eigene verbundene App in Domo zu erstellen und ihre eigene Client-ID und ihr eigenes Client-Geheimnis anzugeben, wenn sie Verbindungen über die Konsole herstellen. AWS Glue 
+ [Eine öffentliche Domo-Dokumentation zur Erstellung einer verbundenen App für den OAuth Autorisierungscode-Flow finden Sie unter OAuth Authentifizierung.](https://developer.domo.com/portal/1845fc11bbe5d-api-authentication)

Konfigurieren einer Domo-Verbindung:

1. Erstellen Sie in AWS Secrets Manager ein Secret mit den folgenden Details:

   1. Für die kundenseitig verwaltete verbundene App muss das Geheimnis das Zugriffstoken der verbundenen App, `client_id` und `client_secret` enthalten.

   1. Hinweis: Sie müssen ein Geheimnis für Ihre Verbindungen in erstellen AWS Glue.

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

   1. Wählen Sie unter **Verbindungen** die Option **Verbindung erstellen** aus.

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

   1. Wählen Sie die AWS IAM-Rolle aus, die die folgenden Aktionen übernehmen AWS Glue kann und über Berechtigungen verfügt:

------
#### [ 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, in die Sie für diese Verbindung die Token einfügen AWS Glue möchten.

   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.

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

**Voraussetzung**

Ein Domo-Objekt, aus dem gelesen werden soll. Sie benötigen den Objektnamen wie Datensatz oder Datenberechtigungsrichtlinien. Die folgende Tabelle zeigt die unterstützten Entitäten.

**Unterstützte Entitäten für Quelle**:


| Entität | Kann gefiltert werden | Unterstützt Limit | Unterstützt „Sortieren nach“ | Unterstützt „\$1 auswählen“ | Unterstützt Partitionierung | 
| --- | --- | --- | --- | --- | --- | 
| Dataset | Ja | Ja | Ja | Ja | Ja | 
| Datenberechtigungsrichtlinien | Nein | Nein | Nein | Ja | Nein | 

**Beispiel:**

```
Domo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="domo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dataset",
        "API_VERSION": "v1"
    }
```

## Domo-Entitäts- und Felddetails
<a name="domo-reading-from-entities-field-details"></a>

Entitäten mit statischen Metadaten:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/domo-reading-from-entities.html)

Für die folgenden Entitäten stellt Domo Endpunkte zum dynamischen Abrufen von Metadaten bereit, sodass die Operatorunterstützung auf Datentypebene für die Entität erfasst wird.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/domo-reading-from-entities.html)

## Partitionieren von Abfragen
<a name="domo-reading-from-partitioning"></a>

**Feldbasierte Partitionierung**

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:

  ```
  "2023-01-15T11:18:39.205Z"
  ```

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

  Beispiel für gültigen Wert:

  ```
  "2023-01-15"
  ```
+ `UPPER_BOUND`: ein **exklusiver Obergrenzwert** des ausgewählten Partitionsfelds.

  Beispiele für gültigen Wert:

  ```
  "2023-02-15T11:18:39.205Z"
  ```
+ `NUM_PARTITIONS`: Die Anzahl an Partitionen.

Details zur Unterstützung von Feldern für die entitätsbezogene Partitionierung sind in der folgenden Tabelle aufgeführt.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/domo-reading-from-entities.html)

Beispiel:

```
Domo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="domo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dataset",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "permissionTime"
        "LOWER_BOUND": "2023-01-15T11:18:39.205Z"
        "UPPER_BOUND": "2023-02-15T11:18:39.205Z"
        "NUM_PARTITIONS": "2"
    }
```

**Datensatzbasierte Partitionierung**

Sie können die zusätzlichen Spark-Option `NUM_PARTITIONS` angeben, wenn Sie Parallelität in Spark nutzen möchten. Mit diesem Parameter würde die ursprüngliche Abfrage in `NUM_PARTITIONS` Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können.

Bei der datensatzbasierten Partitionierung wird die Gesamtzahl der vorhandenen Datensätze von Domo abgefragt und durch die angegebene `NUM_PARTITIONS`-Anzahl dividiert. Die resultierende Anzahl von Datensätzen wird dann gleichzeitig von jeder Unterabfrage abgerufen.

Beispiel:

```
Domo_read = glueContext.create_dynamic_frame.from_options(
    connection_type="domo",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dataset",
        "API_VERSION": "v1",
        "NUM_PARTITIONS": "2"
    }
```

# Domo-Verbindungsoptionen
<a name="domo-connection-options"></a>

Im Folgenden sind Verbindungsoptionen für Domo aufgeführt:
+ `ENTITY_NAME` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Der Name Ihres Objekts in Domo.
+ `API_VERSION` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Version der Domo-REST-API, die Sie verwenden möchten.
+ `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 für Domo
<a name="domo-connection-limitations"></a>

Im Folgenden finden Sie Einschränkungen oder Hinweise für Domo:
+ Aufgrund einer SDK-Beschränkung funktioniert die Filterung für abfragbare Felder, die mit „\$1“ beginnen (z. B. \$1BATCH\$1ID) nicht wie erwartet.
+ Aufgrund einer API-Einschränkung funktioniert die Filterung nur für das Datum vor dem von Ihnen angegebenen Datum. Dies wirkt sich auch auf den inkrementellen Abruf aus. Um diese Einschränkung zu umgehen, wählen Sie ein Datum entsprechend Ihrer Zeitzone gegenüber UTC aus, um Daten für das gewünschte Datum zu erhalten.