SAP OData 엔터티에서 읽기
사전 조건
읽으려는 SAP HANA 객체. object/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 엔터티 및 필드 세부 정보:
개체 | 데이터 유형 | 지원되는 연산자 |
---|---|---|
테이블(동적 엔터티) | String | =, !=, >, >=, <, <=, BETWEEN, LIKE |
Integer | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
Long | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
Double | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
날짜 | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
DateTime | =, !=, >, >=, <, <=, BETWEEN, LIKE | |
불 | =, != | |
구조체 | =, !=, >, >=, <, <=, 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)