ForkRecord 프로세서

ForkRecord 프로세서

Openflow의 ForkRecord 프로세서는 하나의 레코드를 여러 개의 레코드로 쪼개주는 프로세서예요. ARRAY 타입의 특정 필드를 지정하면 'split' 또는 'extract' 모드에 따라 레코드를 여러 개로 나눠줘요.

출처: Snowflake 문서

본문

번들 (Bundle)

org.apache.nifi | nifi-standard-nar

설명 (Description)

이 프로세서는 사용자가 레코드를 여러 개의 레코드로 쪼갤 수 있게 해줘요. 사용자는 동적 속성으로 RECORD 객체를 포함하는 ARRAY 타입의 필드를 가리키는 Record Path를 최소 하나 이상 지정해야 해요. 프로세서는 'split'과 'extract' 두 가지 모드를 지원해요. 두 모드 모두 지정한 배열에 포함된 요소마다 레코드 하나씩 생성돼요. 'split' 모드에서는 각 생성 레코드가 입력과 동일한 스키마를 유지하지만 배열에는 요소가 하나만 포함돼요. 'extract' 모드에서는 배열의 요소가 레코드 타입이어야 하며, 그 요소가 생성 레코드가 돼요. 또한 'extract' 모드에서는 각 생성 레코드가 루트 레벨부터 추출된 레코드까지의 부모 레코드 모든 필드를 포함할지 지정할 수 있어요. 이때 레코드에 추가할 필드가 Record Writer 컨트롤러 서비스의 스키마에 정의되어 있어야 해요. 예시는 이 프로세서의 추가 세부 정보(additional details) 문서를 참고해요.

태그 (Tags)

array, content, event, fork, record, stream

입력 요구 사항 (Input Requirement)

필수 (REQUIRED)

민감 동적 속성 지원 (Supports Sensitive Dynamic Properties)

아니요 (false)

속성 (Properties)

속성 설명
fork-mode 프로세서의 포킹(forking) 모드를 지정해요.
include-parent-fields 이 파라미터는 'extract' 모드에서만 유효해요. true로 설정하면 루트 레벨부터 지정한 배열까지의 모든 필드가 쪼갤 배열의 각 요소 필드로 추가돼요.
record-reader 들어오는 데이터를 읽는 데 사용할 컨트롤러 서비스를 지정해요.
record-writer 레코드를 쓰는 데 사용할 컨트롤러 서비스를 지정해요.

관계 (Relationships)

이름 설명
failure 포크 작업 중 FlowFile에서 오류가 발생하면 이 관계로 보내져요.
fork 포크된 레코드를 포함한 FlowFile이 이 관계로 보내져요.
original 원본 FlowFile이 이 관계로 보내져요.

쓰기 속성 (Writes attributes)

이름 설명
record.count 생성된 FlowFile에는 FlowFile에 쓰인 레코드 수를 나타내는 'record.count' 속성이 있어요.
mime.type Record Writer가 나타내는 MIME 타입이에요.
<Attributes from Record Writer> 설정된 Record Writer가 반환하는 모든 속성이 FlowFile에 추가돼요.

더 알아보기 (Learn more)