Leitura de entidades do Domo
Pré-requisito
Um objeto do Domo do qual você deseja ler. Você precisará do nome do objeto, como Conjunto de dados ou Políticas de permissões de dados. A tabela a seguir mostra as entidades compatíveis.
Entidades compatíveis quanto à origem:
| Entidade | Pode ser filtrada | Oferece suporte a limite | Oferece suporte a Ordenar por | Oferece suporte a Selecionar * | Oferece suporte a particionamento |
|---|---|---|---|---|---|
| Data Set | Sim | Sim | Sim | Sim | Sim |
| Políticas de permissões de dados | Não | Não | Não | Sim | Não |
Exemplo:
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1" }
Detalhes das entidades e dos campos do Domo
Entidades com metadados estáticos:
| Entidade | Campo | Tipo de dados | Operadores compatíveis |
|---|---|---|---|
| Políticas de permissões de dados | id | Longo | N/D |
| type | String | N/D | |
| nome | String | N/D | |
| filtros | Lista | N/D | |
| usuários | Lista | N/D | |
| virtualUsers | Lista | N/D | |
| groups | Lista | N/D |
Para as entidades a seguir, o Domo fornece endpoints para buscar metadados dinamicamente, para que o suporte do operador seja capturado no nível do tipo de dados da entidade.
| Entidade | Tipo de dados | Operadores compatíveis |
|---|---|---|
| Data Set | Inteiro | =, !=, <, >, >=, <= |
| Longo | =, !=, <, >, >=, <= | |
| String | =, !=, CONTAINS | |
| Data | =, >, >=, <, <=, BETWEEN | |
| DateTime | =, >, >=, <, <=, BETWEEN | |
| Booleano | =, != | |
| Duplo | =, !=, <, >, >=, <= | |
| Lista | N/D | |
| Struct | N/D |
Particionamento de consultas
Particionamento com base em campo
É possível fornecer as opções adicionais do Spark PARTITION_FIELD, LOWER_BOUND, UPPER_BOUND e NUM_PARTITIONS se quiser utilizar a simultaneidade no Spark. Com esses parâmetros, a consulta original seria dividida em NUM_PARTITIONS subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente.
PARTITION_FIELD: o nome do campo a ser usado para particionar a consulta.LOWER_BOUND: um valor limite inferior inclusivo do campo de partição escolhido.Para o campo DateTime, aceitamos o valor no formato ISO.
Exemplo de valor válido:
"2023-01-15T11:18:39.205Z"Para o campo de Data, aceitamos o valor no formato ISO.
Exemplo de valor válido:
"2023-01-15"UPPER_BOUND: um valor limite superior exclusivo do campo de partição escolhido.Exemplo de valor válido:
"2023-02-15T11:18:39.205Z"NUM_PARTITIONS: o número de partições.
Os detalhes do suporte do campo de particionamento relativo às entidades são capturados na seguinte tabela:
| Nome da entidade | Campos de particionamento | Tipo de dados |
|---|---|---|
| Conjunto de dados | Qualquer campo baseado em data/hora [metadados dinâmicos] | DateTime |
| Qualquer campo baseado em data [metadados dinâmicos] | Data |
Exemplo:
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" }
Particionamento com base em registros
É possível fornecer a opção adicional NUM_PARTITIONS do Spark se quiser utilizar a simultaneidade no Spark. Com esse parâmetro, a consulta original seria dividida em NUM_PARTITIONS subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente.
No particionamento baseado em registros, o número total de registros presentes é consultado no Domo e dividido pelo número NUM_PARTITIONS fornecido. O número resultante de registros é então buscado simultaneamente por cada subconsulta.
Exemplo:
Domo_read = glueContext.create_dynamic_frame.from_options( connection_type="domo", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "dataset", "API_VERSION": "v1", "NUM_PARTITIONS": "2" }