Leitura de entidades do ServiceNow
Pré-requisito
Um objeto de tabelas do ServiceNow do qual você deseja ler. Você precisará do nome do objeto, como pa_bucket ou incidente.
Exemplo:
servicenow_read = glueContext.create_dynamic_frame.from_options( connection_type="servicenow", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "pa_buckets", "API_VERSION": "v2" "instanceUrl": "https://<instance-name>.service-now.com" } )
Detalhes das entidades e dos campos do ServiceNow:
Para as entidades a seguir, o ServiceNow fornece endpoints para buscar metadados dinamicamente, para que o suporte do operador seja capturado no nível do tipo de dados de cada entidade.
| Entidade | Tipo de dados | Operadores compatíveis |
|---|---|---|
| Tabelas (entidades dinâmicas) | Inteiro | =, !=, <, <=, >, >=, BETWEEN |
| BigDecimal | =, !=, <, <=, >, >=, BETWEEN | |
| Float | =, !=, <, <=, >, >=, BETWEEN | |
| Longo | =, !=, <, <=, >, >=, BETWEEN | |
| Data | =, !=, <, <=, >, >=, BETWEEN | |
| DateTime | =, !=, <, <=, >, >=, BETWEEN | |
| Booliano | =, != | |
| String | =, !=, <, <=, >, >=, BETWEEN, LIKE | |
| Struct | N/D |
nota
O tipo de dados Struct é convertido no tipo de dados String na resposta do conector.
nota
DML_STATUS é um atributo adicional definido pelo usuário usado para rastrear registros CREATED/UPDATED.
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.
| Nome da entidade | Campos de particionamento | Tipo de dados |
|---|---|---|
| Entidade dinâmica | sys_mod_count | Inteiro |
| sys_created_on, sys_updated_on | DateTime |
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.No campo Data e hora, aceitamos o formato de carimbo de data/hora do Spark usado em consultas SQL do Spark.
Exemplos de valores válidos:
"2024-01-30T06:47:51.000Z"UPPER_BOUND: um valor limite superior exclusivo do campo de partição escolhido.NUM_PARTITIONS: o número de partições.
A tabela a seguir descreve os detalhes do suporte do campo de particionamento da entidade:
Exemplo:
servicenow_read = glueContext.create_dynamic_frame.from_options( connection_type="servicenow", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "pa_buckets", "API_VERSION": "v2", "instanceUrl": "https://<instance-name>.service-now.com" "PARTITION_FIELD": "sys_created_on" "LOWER_BOUND": "2024-01-30T06:47:51.000Z" "UPPER_BOUND": "2024-06-30T06:47:51.000Z" "NUM_PARTITIONS": "10" }
Particionamento com base em registros:
Você pode fornecer a opção adicional NUM_PARTITIONS do Spark se quiser utilizar a simultaneidade no Spark. Com esse parâmetro, a consulta original é dividida em NUM_PARTITIONS subconsultas, que podem ser executadas pelas tarefas do Spark simultaneamente.
No particionamento com base em registros, o número total de registros presentes é consultado na API do ServiceNow e dividido pelo número NUM_PARTITIONS fornecido. O número resultante de registros é então buscado simultaneamente por cada subconsulta.
NUM_PARTITIONS: o número de partições.
Exemplo:
servicenow_read = glueContext.create_dynamic_frame.from_options( connection_type="servicenow", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "pa_buckets", "API_VERSION": "v2", "instanceUrl": "https://<instance-name>.service-now.com" "NUM_PARTITIONS": "2" }