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