Lectura de entidades de ServiceNow - AWS Glue

Lectura de entidades de ServiceNow

Requisito previo

Un objeto de tablas de ServiceNow desde el cual desearía leer. Necesitará el nombre del objeto, como pa_bucket o incident.

Ejemplo:

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

Detalles de la entidad y del campo de ServiceNow:

Para las siguientes entidades, ServiceNow proporciona puntos de conexión para obtener los metadatos de forma dinámica, de modo que la compatibilidad del operador se capture según el tipo de datos de cada entidad.

Entidad Tipo de datos Operadores admitidos
Tablas (entidades dinámicas) Entero =, !=, <, <=, >, >=, BETWEEN
BigDecimal =, !=, <, <=, >, >=, BETWEEN
Flotante =, !=, <, <=, >, >=, BETWEEN
Largo =, !=, <, <=, >, >=, BETWEEN
Date =, !=, <, <=, >, >=, BETWEEN
DateTime =, !=, <, <=, >, >=, BETWEEN
Booleano =, !=
Cadena =, !=, <, <=, >, >=, BETWEEN, LIKE
Struct N/A
nota

El tipo de datos de estructura se convierte en un tipo de datos de cadena en la respuesta del conector.

nota

DML_STATUS es un atributo adicional definido por el usuario que se utiliza para hacer un seguimiento de los registros CREADOS o ACTUALIZADOS.

Consultas de particionamiento

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.

Nombre de la entidad Campos de partición Tipo de datos
Entidad dinámica sys_mod_count Entero
sys_created_on, sys_updated_on DateTime
  • 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.

    En el campo DateTime, aceptamos el formato de marca de tiempo de Spark que se utiliza en las consultas de Spark SQL.

    Ejemplos de valor válido:

    "2024-01-30T06:47:51.000Z"
  • UPPER_BOUND: un valor límite superior exclusivo del campo de partición elegido.

  • NUM_PARTITIONS: el número de particiones.

En la tabla siguiente, se describen los detalles de compatibilidad de campos de particiones de entidades:

Ejemplo:

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

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 divide en un número NUM_PARTITIONS de subconsultas que las tareas de Spark pueden ejecutar simultáneamente.

En la partición basada en registros, el número total de registros presentes se consulta desde la API de ServiceNow y se divide por el número proporcionado NUM_PARTITIONS. A continuación, cada subconsulta obtiene simultáneamente el número de registros resultante.

  • NUM_PARTITIONS: el número de particiones.

Ejemplo:

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