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