Lecture à partir d’entités Domo
Prérequis
Un objet Domo à partir duquel vous souhaitez lire. Vous aurez besoin du nom de l’objet, tel que le jeu de données ou les politiques d’autorisation des données. Le tableau suivant présente les entités prises en charge.
Entités prises en charge pour la source :
| Entité | Peut être filtré | Limit prise en charge | Order by prise en charge | Select prise en charge* | Partitionnement pris en charge |
|---|---|---|---|---|---|
| Ensemble de données | Oui | Oui | Oui | Oui | Oui |
| Politiques d’autorisation des données | Non | Non | Non | Oui | Non |
Exemple :
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1" }
Détails des entités et des champs Domo
Entités avec métadonnées statiques :
| Entité | Champ | Type de données | Opérateurs pris en charge |
|---|---|---|---|
| Politiques d’autorisation des données | id | Long | N/A |
| type | Chaîne | N/A | |
| name | Chaîne | N/A | |
| filtres | Liste | N/A | |
| users | Liste | N/A | |
| virtualUsers | Liste | N/A | |
| groups | Liste | N/A |
Pour l’entité suivante, Domo fournit des points de terminaison permettant de récupérer les métadonnées de manière dynamique, afin que la prise en charge des opérateurs soit capturée au niveau du type de données pour l’entité.
| Entité | Type de données | Opérateurs pris en charge |
|---|---|---|
| Ensemble de données | Entier | =, !=, <, >, >=, <= |
| Long | =, !=, <, >, >=, <= | |
| Chaîne | =, !=, CONTAINS | |
| Date | =, >, >=, <, <=, BETWEEN | |
| DateTime | =, >, >=, <, <=, BETWEEN | |
| Booléen | =, != | |
| Double | =, !=, <, >, >=, <= | |
| Liste | N/A | |
| Struct | N/A |
Requêtes de partitionnement
Partitionnement basé sur les champs
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 champ DateTime, nous acceptons la valeur au format ISO.
Exemple de valeur valide :
"2023-01-15T11:18:39.205Z"Pour le champ Date, nous acceptons la valeur au format ISO.
Exemple de valeur valide :
"2023-01-15"UPPER_BOUND: une valeur limite supérieure exclusive du champ de partition choisi.Exemple de valeur valide :
"2023-02-15T11:18:39.205Z"NUM_PARTITIONS: le nombre de partitions.
Les détails relatifs à la prise en charge des champs de partitionnement par entité sont présentés dans le tableau suivant :
| Nom de l’entité | Champs de partitionnement | Type de données |
|---|---|---|
| Ensemble de données | N’importe quel champ basé sur la date et l’heure [métadonnées dynamiques] | DateTime |
| N’importe quel champ basé sur la date [métadonnées dynamiques] | Date |
Exemple :
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" }
Partitionnement basé sur les enregistrements
Vous pouvez indiquer l’option Spark supplémentaire NUM_PARTITIONS si vous souhaitez utiliser la simultanéité dans Spark. Avec ce paramètre, 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.
Dans le partitionnement basé sur les enregistrements, le nombre total d’enregistrements présents est demandé par Domo, puis divisé par le nombre NUM_PARTITIONS fourni. Le nombre d’enregistrements qui en résulte est ensuite extrait simultanément par chaque sous-requête.
Exemple :
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1", "NUM_PARTITIONS": "2" }