Lesen aus Domo-Entitäten - AWS Glue

Lesen aus Domo-Entitäten

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

Entitäten mit statischen Metadaten:

Entität Feld Datentyp Unterstützte Operatoren
Datenberechtigungsrichtlinien id Long N/A
Typ String N/A
Name String N/A
-Filter Auflisten N/A
Benutzer Auflisten N/A
virtualUsers Auflisten N/A
Gruppen Auflisten N/A

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.

Entität Datentyp Unterstützte Operatoren
Dataset Ganzzahl =, !=, <, >, >=, <=
Long =, !=, <, >, >=, <=
String =, !=, CONTAINS
Datum =, <, <=, >, >=, BETWEEN
DateTime =, <, <=, >, >=, BETWEEN
Boolesch =, !=
Double =, !=, <, >, >=, <=
Auflisten N/A
Struct N/A

Partitionieren von Abfragen

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.

    Beispiel für gültigen Wert:

    "2023-02-15T11:18:39.205Z"
  • NUM_PARTITIONS: die Anzahl der Partitionen.

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

Entity-Name Partitionieren von Feldern Datentyp
Datensatz Beliebiges auf Datum/Uhrzeit basierendes Feld [dynamische Metadaten] DateTime
Beliebiges datumsbasiertes Feld [dynamische Metadaten] Datum

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