前提条件
読み取り元の SAP OData オブジェクト。オブジェクト/EntitySet 名が必要です。例えば、/sap/opu/odata/sap/API_SALES_ORDER_SRV/A_SalesOrder です。
例:
sapodata_read = glueContext.create_dynamic_frame.from_options(
connection_type="SAPOData",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "entityName"
}, transformation_ctx=key)
SAP OData エンティティとフィールドの詳細:
エンティティ | データ型 | サポートされている演算子 |
---|---|---|
表 (動的エンティティ) | 文字列 | =, !=, >, >=, <, <=, BETWEEN, LIKE |
整数 | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
Long | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
ダブル | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
日付 | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
DateTime | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
ブール値 | =, != | |
Struct | =, !=, >, >=, <, <=, BETWEEN, LIKE |
パーティショニングクエリ
フィールドベースのパーティション分割:
Spark で同時実行を使用する場合は、追加の Spark オプション PARTITION_FIELD
、LOWER_BOUND
、UPPER_BOUND
、および NUM_PARTITIONS
を指定できます。これらのパラメータを使用すると、元のクエリは Spark タスクで同時に実行できるサブクエリの NUM_PARTITIONS
の数に分割されます。整数、日付、および DateTime フィールドは、SAP OData コネクタのフィールドベースのパーティショニングをサポートします。
PARTITION_FIELD
: クエリのパーティション化に使用するフィールドの名前。LOWER_BOUND
: 選択したパーティションフィールドの包括的な下限値。Datetime フィールドでは、SPark SQL クエリで使用される Spark タイムスタンプ形式を受け入れます。
有効な値の例は次のとおりです:
"2000-01-01T00:00:00.000Z"
UPPER_BOUND
: 選択したパーティションフィールドの排他的上限値。NUM_PARTITIONS
: パーティション数。PARTITION_BY
: 実行されるタイプのパーティション分割。フィールドベースのパーティショニングの場合、「FIELD」が渡されます。
例:
sapodata= glueContext.create_dynamic_frame.from_options(
connection_type="sapodata",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "/sap/opu/odata/sap/SEPM_HCM_SCENARIO_SRV/EmployeeSet",
"PARTITION_FIELD": "validStartDate"
"LOWER_BOUND": "2000-01-01T00:00:00.000Z"
"UPPER_BOUND": "2020-01-01T00:00:00.000Z"
"NUM_PARTITIONS": "10",
"PARTITION_BY": "FIELD"
}, transformation_ctx=key)
レコードベースのパーティション分割:
元のクエリは、元のクエリは Spark タスクで同時に実行できるサブクエリの NUM_PARTITIONS
の数に分割されます。
レコードベースのパーティショニングは、ODP 以外のエンティティでのみサポートされます。ODP エンティティのページ分割は、次のトークン/スキップトークンを通じてサポートされるためです。
PARTITION_BY
: 実行されるタイプのパーティション分割。レコードベースのパーティショニングの場合、「COUNT」が渡されます。
sapodata= glueContext.create_dynamic_frame.from_options(
connection_type="sapodata",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "/sap/opu/odata/sap/SEPM_HCM_SCENARIO_SRV/EmployeeSet",
"NUM_PARTITIONS": "10",
"PARTITION_BY": "COUNT"
}, transformation_ctx=key)