Leitura de entidades do ServiceNow - AWS Glue

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="custom.spark", connection_options={ "connectionName": "servicenow-basicAuth", "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
Booleano =, !=
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.

Consultas de particionamento

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