從 ServiceNow 實體讀取 - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

從 ServiceNow 實體讀取

必要條件

您要讀取的 ServiceNow 資料表物件。您需要物件名稱,例如 pa_bucket 或 事件。

範例:

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

ServiceNow 實體和欄位詳細資訊

對於下列實體, ServiceNow 提供端點以動態方式擷取中繼資料,以便在每個實體的資料類型層級擷取運算子支援。

實體 資料類型 支援的運算子
資料表 (動態實體) Integer =, !=, <, <=, >, >=, BETWEEN
BigDecimal =, !=, <, <=, >, >=, BETWEEN
Float =, !=, <, <=, >, >=, BETWEEN
Long =, !=, <, <=, >, >=, BETWEEN
日期 =, !=, <, <=, >, >=, BETWEEN
DateTime =, !=, <, <=, >, >=, BETWEEN
Boolean =, !=
字串 =, !=, <, <=, >, >=, BETWEEN, LIKE
Struct N/A
注意

在連接器的回應中,Struct 資料類型會轉換為字串資料類型。

注意

DML_STATUS 是用於追蹤 CREATED/UPDATED 記錄的額外使用者定義屬性。

分割查詢

欄位基礎分割

如果您想要在 Spark 中使用NUM_PARTITIONS並行PARTITION_FIELD,您可以提供額外的 Spark LOWER_BOUND選項 UPPER_BOUND、、 和 。透過這些參數,原始查詢會分割為 Spark 任務可同時執行的子查詢NUM_PARTITIONS數目。

實體名稱 分割欄位 資料類型
動態實體 sys_mod_count Integer
sys_created_on、sys_updated_on DateTime
  • PARTITION_FIELD:用於分割查詢的欄位名稱。

  • LOWER_BOUND:所選分割區欄位的包含下限值。

    對於 Datetime 欄位,我們接受SParkSQL查詢中使用的 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" }

記錄為基礎的分割

NUM_PARTITIONS 如果您想要在 Spark 中使用並行,您可以提供額外的 Spark 選項。使用此參數,原始查詢會分割為 Spark 任務可同時執行的子查詢NUM_PARTITIONS數目。

在以記錄為基礎的分割中,存在的記錄總數會從 中查詢 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" }