사전 조건
읽으려는 Oracle NetSuite 객체. 객체 이름(예: deposit
또는 timebill
)이 필요합니다. 다음 표에는 지원되는 엔터티가 나와 있습니다.
소스에 대해 지원되는 엔터티:
개체 | 필터링 가능 | 정렬 기준 지원 | 제한 지원 | SELECT * 지원 | 분할 지원 |
---|---|---|---|---|---|
입금 | 예 | 아니요 | 예 | 예 | 예 |
설명 항목 | 예 | 아니요 | 예 | 예 | 예 |
인벤토리 항목 | 예 | 아니요 | 예 | 예 | 예 |
항목 이행 | 예 | 아니요 | 예 | 예 | 예 |
항목 그룹 | 예 | 아니요 | 예 | 예 | 예 |
저널 항목 | 예 | 아니요 | 예 | 예 | 예 |
인벤토리 외 구매 항목 | 예 | 아니요 | 예 | 예 | 예 |
인벤토리 외 재판매 항목 | 예 | 아니요 | 예 | 예 | 예 |
인벤토리 외 판매 항목 | 예 | 아니요 | 예 | 예 | 예 |
구매 주문 | 예 | 아니요 | 예 | 예 | 예 |
자회사 | 예 | 아니요 | 예 | 예 | 예 |
공급 업체 | 예 | 아니요 | 예 | 예 | 예 |
공급업체 청구서 | 예 | 아니요 | 예 | 예 | 예 |
공급업체 반환 권한 부여 | 예 | 아니요 | 예 | 예 | 예 |
시간 청구서 | 예 | 아니요 | 예 | 예 | 예 |
고객 결제 | 예 | 아니요 | 예 | 예 | 예 |
이행 요청 | 예 | 아니요 | 예 | 예 | 예 |
예제:
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
connection_type="netsuiteerp",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "deposit",
"API_VERSION": "v1"
}
)
Oracle NetSuite 엔터티 및 필드 세부 정보:
Oracle NetSuite에서는 선택한 엔터티 아래에서 사용 가능한 필드를 동적으로 로드합니다. 필드의 데이터 유형에 따라 다음 필터 연산자를 지원합니다.
필드 데이터 유형 | 지원되는 필터 연산자 |
---|---|
String | LIKE, =, != |
날짜 | BETWEEN, =, <, <=, >, >= |
DateTime | BETWEEN, <, <=, >, >= |
숫자 | =, !=, <, <=, >, >= |
불 | =, != |
쿼리 파티셔닝
필드 기반 분할
Oracle NetSuite 커넥터에는 동적 메타데이터가 있으므로 필드 기반 분할에 대해 지원되는 필드가 동적으로 선택됩니다. 필드 기반 분할은 정수, BigInteger, 날짜 또는 DateTime와 같은 데이터 유형을 사용하는 필드에서 지원됩니다.
Spark에서 동시성을 활용하려는 경우 추가 Spark 옵션(PARTITION_FIELD
, LOWER_BOUND
, UPPER_BOUND
, NUM_PARTITIONS
)을 제공할 수 있습니다. 이러한 파라미터를 사용하면 Spark 작업에서 동시에 실행할 수 있는 NUM_PARTITIONS
개의 하위 쿼리로 원래 쿼리가 분할됩니다.
PARTITION_FIELD
: 쿼리를 파티셔닝하는 데 사용할 필드의 이름.LOWER_BOUND
: 선택한 파티션 필드의 하한 값(경계 포함).타임스탬프 필드의 경우 Spark SQL 쿼리에 사용된 Spark 타임스탬프 형식을 허용합니다.
유효한 값의 예제:
"TIMESTAMP \"1707256978123\"" "TIMESTAMP \"1702600882\"" "TIMESTAMP '2024-02-06T22:00:00:00.000Z'" "TIMESTAMP '2024-02-06T22:00:00:00Z'" "TIMESTAMP '2024-02-06'"
UPPER_BOUND
: 선택한 파티션 필드의 상한 값(경계 제외).NUM_PARTITIONS
: 파티션 수.
예제:
oracle-netsuite_read = glueContext.create_dynamic_frame.from_options(
connection_type="oracle-netsuite",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "company",
"API_VERSION": "v3",
"PARTITION_FIELD": "hs_object_id"
"LOWER_BOUND": "50"
"UPPER_BOUND": "16726619290"
"NUM_PARTITIONS": "10"
}
레코드 기반 분할
Spark에서 동시성을 활용하려는 경우 추가 Spark 옵션(NUM_PARTITIONS
)을 제공할 수 있습니다. 이 파라미터를 사용하면 Spark 태스크에서 동시에 실행할 수 있는 NUM_PARTITIONS
개의 하위 쿼리로 원본 쿼리가 분할됩니다.
레코드 기반 분할에서는 존재하는 총 레코드 수를 Oracle NetSuite API에서 쿼리하고 제공된 NUM_PARTITIONS
수로 나눕니다. 그런 다음, 결과 레코드 수를 각 하위 쿼리에서 동시에 가져옵니다.
NUM_PARTITIONS
: 파티션 수.
예제:
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
connection_type="netsuiteerp",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "deposit",
"API_VERSION": "v1",
"NUM_PARTITIONS": "3"
}