ServiceNow エンティティからの読み取り - AWS Glue

ServiceNow エンティティからの読み取り

前提条件

読み取り元の ServiceNow Tables オブジェクト。pa_bucket や Incident などのオブジェクト名が必要になります。

例:

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 はメタデータを動的に取得するためのエンドポイントを備えているため、オペレータのサポートは各エンティティのデータ型レベルでキャプチャされます。

エンティティ データ型 サポートされている演算子
表 (動的エンティティ) 整数 =, !=, <, <=, >, >=, BETWEEN
BigDecimal =, !=, <, <=, >, >=, BETWEEN
浮動小数点数 =, !=, <, <=, >, >=, BETWEEN
Long =, !=, <, <=, >, >=, BETWEEN
日付 =, !=, <, <=, >, >=, BETWEEN
DateTime =, !=, <, <=, >, >=, BETWEEN
ブール値 =, !=
文字列 =、!=、<、<=、>、>=、BETWEEN、LIKE
Struct 該当なし
注記

構造体データ型は、コネクタの応答で文字列データ型に変換されます。

注記

DML_STATUS は、CREATED/UPDATED レコードの追跡に使用される追加のユーザー定義属性です。

パーティショニングクエリ

フィールドベースのパーティショニング:

Spark で同時実行を使用する場合は、追加の Spark オプション PARTITION_FIELDLOWER_BOUNDUPPER_BOUND、および NUM_PARTITIONS を指定できます。これらのパラメータを使用すると、元のクエリは Spark タスクで同時に実行できるサブクエリの NUM_PARTITIONS の数に分割されます。

エンティティ名 パーティション分割フィールド データ型
動的エンティティ sys_mod_count 整数
sys_created_on、sys_updated_on DateTime
  • PARTITION_FIELD: クエリのパーティション化に使用するフィールドの名前。

  • LOWER_BOUND: 選択したパーティションフィールドの包括的な下限値。

    Datetime フィールドでは、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 を指定できます。これらのパラメータを使用すると、元のクエリは 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" }