SubmitQueryJob 프로세서
SubmitQueryJob 프로세서
Openflow의 SubmitQueryJob 프로세서는 Bulk API 2.0으로 Salesforce에 쿼리 작업을 제출하는 데 사용합니다. 이 문서에서 프로세서의 번들, 설명, 속성, 상태 관리 등을 확인할 수 있습니다.
출처: Snowflake 문서
본문
번들 (Bundle)
com.snowflake.openflow.runtime | runtime-salesforce-processors-nar
설명 (Description)
Bulk API 2.0을 사용하여 Salesforce에 Query Job을 제출합니다. SIMPLE 모드에서는 객체별 상태(previousLast/currentLast와 status)를 설정된 controller service에 저장합니다. ADVANCED 모드에서는 객체를 넘나드는 증분 쿼리를 지원하도록 프로세서 범위에 단일 last 타임스탬프를 저장합니다.
태그 (Tags)
bulk, job, preview, query, salesforce
입력 요구사항 (Input Requirement)
REQUIRED
민감한 동적 속성 지원 (Supports Sensitive Dynamic Properties)
false
상태 관리 (State management)
| 범위 (Scopes) | 설명 (Description) |
|---|---|
| CLUSTER | 증분 검색용 자리 표시자를 쿼리 필드에서 사용하는 경우, 마지막 Query Job 제출 시각에서 30초를 뺀 타임스탬프가 상태에 저장됩니다. |
속성 (Properties)
| 속성 (Property) | 설명 (Description) |
|---|---|
| Column Delimiter | CSV 작업 데이터에 사용하는 열 구분자입니다. |
| Configuration Mode | 이 프로세서를 구성하는 모드입니다. 고급 모드를 사용하면 SOQL 쿼리를 제공해야 하며, 프로세서의 상태는 쿼리 대상 객체와 무관하게 마지막 쿼리 작업 제출 시점의 타임스탬프만 저장합니다. 단순 모드를 사용하면 객체 이름과 쿼리할 필드를 제공해야 하며, 프로세서의 상태는 쿼리한 각 객체에 대해 마지막 쿼리 작업 제출 시점의 타임스탬프를 저장합니다. |
| Incremental Offload | 프로세서가 증분 오프로드를 수행할지 여부입니다. true이면 SystemModstamp 필드에 대한 WHERE 절을 사용하여 마지막 쿼리 작업 제출 이후 변경된 레코드만 가져옵니다. |
| Line Ending | CSV 작업 데이터에 사용하며 데이터 행의 끝을 표시하는 줄바꿈 문자입니다. |
| Object Fields | 지정된 객체에 대해 쿼리할 필드 이름의 쉼표 구분 목록입니다. |
| Object Name | 쿼리할 객체의 이름입니다. |
| Operation | 제출할 쿼리의 유형입니다. |
| Query | 수행할 쿼리입니다. 증분 검색(예: 마지막 쿼리 제출 이후 추가/수정/삭제된 요소만 가져오기)을 하려면 이 프로세서가 ${nowTs}와 ${lastJobTimestamp}라는 두 속성을 제공합니다. SELECT Id FROM Account WHERE SystemModstamp > ${lastJobTimestamp} AND SystemModstamp <= ${nowTs}처럼 자리 표시자를 사용할 수 있습니다. |
| Result Format | 결과에 사용할 형식입니다. 현재 지원되는 값은 CSV뿐입니다. |
| Salesforce Bulk Job State Service | 객체 유형별로 Bulk Job 상태를 저장하는 Controller Service입니다(SIMPLE 모드에서 사용). ADVANCED 모드에서는 프로세서가 프로세서 상태에 단일 last 타임스탬프를 저장합니다. |
| Salesforce Client | API와 상호작용할 Salesforce Client입니다. |
관계 (Relationships)
| 이름 (Name) | 설명 (Description) |
|---|---|
| comms.failure | Query Job을 제출하지 못했지만 작업을 재시도할 수 있는 경우 들어오는 FlowFile이 이 관계로 라우팅됩니다. |
| failure | Query Job을 제출하지 못한 경우 들어오는 FlowFile이 이 관계로 라우팅됩니다. |
| in.progress | 같은 객체에 대한 이전 작업이 아직 IN_PROGRESS인 경우 들어오는 FlowFile이 이 관계로 라우팅됩니다. |
| success | Query Job이 성공적으로 제출되면 FlowFile이 이 관계로 라우팅됩니다. |