从 ServiceNow 实体中读取 - AWS Glue

从 ServiceNow 实体中读取

先决条件

您要从中读取内容的 ServiceNow 表对象。您将需要 pa_bucket 或 incident 等对象名称。

示例

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

ServiceNow 实体和字段详细信息

对于以下实体,ServiceNow 提供用于动态获取元数据的端点,以便在每个实体的数据类型级别捕获运算符支持。

实体 数据类型 支持的运算符
表(动态实体) 整数 =, !=, <, <=, >, >=, BETWEEN
BigDecimal =, !=, <, <=, >, >=, BETWEEN
浮点型 =, !=, <, <=, >, >=, BETWEEN
长整型 =, !=, <, <=, >, >=, BETWEEN
Date =, !=, <, <=, >, >=, BETWEEN
DateTime =, !=, <, <=, >, >=, BETWEEN
布尔值 =, !=
String =, !=, <, <=, >, >=, BETWEEN, LIKE
Struct 不适用
注意

在连接器的响应中,结构数据类型将转换为字符串数据类型。

注意

DML_STATUS 是用于跟踪 CREATED/UPDATED 记录的附加用户定义属性。

对查询进行分区

基于字段的分区

如果您想在 Spark 中利用并发,可以提供其他 Spark 选项:PARTITION_FIELDLOWER_BOUNDUPPER_BOUNDNUM_PARTITIONS。使用这些参数,原始查询将被拆分为 NUM_PARTITIONS 个子查询,这些子查询可以由 Spark 任务同时执行。

实体名称 分区字段 数据类型
动态实体 sys_mod_count 整数
sys_created_on、sys_updated_on DateTime
  • PARTITION_FIELD:用于对查询进行分区的字段的名称。

  • LOWER_BOUND:所选分区字段的包含下限值。

    对于日期时间字段,我们接受 Spark SQL 查询中使用的 Spark 时间戳格式。

    有效值示例:

    "2024-01-30T06:47:51.000Z"
  • UPPER_BOUND:所选分区字段的排除上限值。

  • NUM_PARTITIONS:分区的数量。

下表描述实体分区字段支持详细信息:

例如:

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

基于记录的分区

如果您想在 Spark 中利用并发,可以提供附加 Spark 选项 NUM_PARTITIONS。使用此参数,原始查询将被拆分为 NUM_PARTITIONS 个子查询,这些子查询可以由 Spark 任务同时执行。

在基于记录的分区中,从 ServiceNow API 查询存在的记录总数,然后将其除以提供的 NUM_PARTITIONS 数字。然后,每个子查询会同时获取生成的记录数。

  • NUM_PARTITIONS:分区的数量。

例如:

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