Lectura de entidades de Domo
Requisito previo
Un objeto de Domo desde el que desea leer. Necesitará el nombre del objeto, como Conjunto de datos o Políticas de permisos de datos. En la siguiente tabla se muestran las entidades admitidas.
Entidades compatibles como origen:
| Entidad | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar * | Admite partición |
|---|---|---|---|---|---|
| Conjunto de datos | Sí | Sí | Sí | Sí | Sí |
| Políticas de permisos de datos | No | No | No | Sí | No |
Ejemplo:
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1" }
Detalles de entidades y campos de Domo
Entidades con metadatos estáticos:
| Entidad | Campo | Tipo de datos: | Operadores admitidos |
|---|---|---|---|
| Políticas de permisos de datos | id | Largo | N/A |
| type | Cadena | N/A | |
| nombre | Cadena | N/A | |
| filters | Enumeración | N/A | |
| usuarios | Enumeración | N/A | |
| virtualUsers | Enumeración | N/A | |
| grupos | Enumeración | N/A |
Para la siguiente entidad, Domo proporciona puntos de conexión para obtener metadatos de forma dinámica, de modo que la compatibilidad del operador se capture a nivel de tipo de datos para la entidad.
| Entidad | Tipo de datos: | Operadores admitidos |
|---|---|---|
| Conjunto de datos | Entero | =, !=, <, >, >=, <= |
| Largo | =, !=, <, >, >=, <= | |
| Cadena | =, !=, CONTAINS | |
| Date | =, >, >=, <, <=, BETWEEN | |
| DateTime | =, >, >=, <, <=, BETWEEN | |
| Booleano | =, != | |
| Doble | =, !=, <, >, >=, <= | |
| Enumeración | N/A | |
| Struct | N/A |
Consultas de partición
Partición basada en campos
Puede proporcionar las opciones adicionales de Spark PARTITION_FIELD, LOWER_BOUND, UPPER_BOUND y NUM_PARTITIONS si quiere utilizar la simultaneidad en Spark. Con estos parámetros, la consulta original se dividiría en un número NUM_PARTITIONS de subconsultas que las tareas de Spark pueden ejecutar simultáneamente.
PARTITION_FIELD: el nombre del campo que se utilizará para particionar la consulta.LOWER_BOUND: un valor de límite inferior inclusivo del campo de partición elegido.Para el campo DateTime, aceptamos el valor en formato ISO.
Ejemplo de valor válido:
"2023-01-15T11:18:39.205Z"En el campo Fecha, aceptamos el valor en formato ISO.
Ejemplo de valor válido:
"2023-01-15"UPPER_BOUND: un valor límite superior exclusivo del campo de partición elegido.Ejemplo de valor válido:
"2023-02-15T11:18:39.205Z"NUM_PARTITIONS: el número de particiones.
En la siguiente tabla se detalla la compatibilidad de los campos de partición por entidad:
| Nombre de la entidad | Campos de partición | Tipo de datos: |
|---|---|---|
| Conjunto de datos | Cualquier campo basado en fecha y hora [metadatos dinámicos] | DateTime |
| Cualquier campo basado en fecha [metadatos dinámicos] | Date |
Ejemplo:
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" }
Partición basada en registros
Puede proporcionar la opción adicional NUM_PARTITIONS de Spark si quiere usar la simultaneidad en Spark. Con estos parámetros, la consulta original se dividiría en NUM_PARTITIONS subconsultas que las tareas de Spark pueden ejecutar simultáneamente.
En la partición basada en registros, se consulta el número total de registros presentes en Domo y se divide entre el número de NUM_PARTITIONS proporcionado. A continuación, cada subconsulta obtiene simultáneamente el número de registros resultante.
Ejemplo:
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1", "NUM_PARTITIONS": "2" }