MergeContent

MergeContent

사용자 정의 전략에 따라 FlowFile 그룹을 함께 병합하고 단일 FlowFile로 패키징하는 프로세서예요. 서로 다른 연결의 FlowFiles에서는 Group of FlowFiles가 생성되지 않으므로 프로세서를 단일 수신 연결로만 구성하는 것이 좋아요. 이 프로세서는 mime.type 특성을 적절히 업데이트해요. 참고: 이 프로세서는 Scheduling Strategy로 Cron Driven으로 구성하면 안 돼요.

출처: Snowflake 문서

본문

기능 — 일반 제공(Generally Available)

Openflow Snowflake 배포는 AWS, Azure, GCP Commercial 리전의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS Commercial 리전의 모든 계정에서 사용할 수 있어요.

Bundle

org.apache.nifi | nifi-standard-nar

설명 (Description)

사용자 정의 전략에 따라 FlowFile 그룹을 함께 병합하고 단일 FlowFile로 패키징해요. 서로 다른 연결의 FlowFiles에서는 Group of FlowFiles가 생성되지 않으므로 프로세서를 단일 수신 연결로만 구성하는 것이 좋아요. 이 프로세서는 mime.type 특성을 적절히 업데이트해요. 참고: 이 프로세서는 Scheduling Strategy로 Cron Driven으로 구성하면 안 돼요.

태그 (Tags)

archive, concatenation, content, correlation, flowfile-stream, flowfile-stream-v3, merge, stream, tar, zip

입력 요구사항 (Input Requirement)

REQUIRED (필수)

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

false

속성 (Properties)

Property Description
Attribute Strategy bundle에 추가할 FlowFile 특성을 결정해요. ‘Keep All Unique Attributes’를 선택하면 값이 다른 FlowFile의 값과 충돌하지 않는 한 bundle에 포함되는 모든 FlowFile의 모든 특성이 유지돼요. ‘Keep Only Common Attributes’를 선택하면 값이 같은 상태로 bundle의 모든 FlowFile에 존재하는 특성만 보존돼요.
Bin Termination Check 각 FlowFile에 대해 평가할 Expression Language Expression을 지정해요. 표현식의 결과가 ‘true’이면 해당 FlowFile이 속한 bin이 최소 항목 수나 최소 크기에 도달하지 않았더라도 종료돼요. bin의 종료를 촉발하는 FlowFile 자체가 Maximum Bin Size보다 크면 다른 bin의 종료를 촉발하지 않고 자체 bin에 배치된다는 점에 유의하세요. 이 속성을 사용할 때는 원하는 순서를 보장하기 위해 flow의 연결에서 Prioritizers를 사용하는 것이 좋아요.
Compression Level Zip Merge Format을 사용할 때 적용할 압축 수준을 지정해요. Zip Merge Format을 사용하지 않으면 이 값은 무시돼요.
Correlation Attribute Name 지정하면 유사한 FlowFiles가 함께 bin으로 묶여요. 여기서 ‘like FlowFiles’란 이 Attribute에 대해 같은 값을 가진 FlowFiles를 의미해요. 지정하지 않으면 FlowFiles는 큐에서 꺼내진 순서대로 bundle로 묶여요.
Delimiter Strategy Header, Footer, Demarcator가 각각의 콘텐츠를 포함하는 파일을 가리켜야 하는지, 아니면 속성 값을 콘텐츠로 사용해야 하는지를 결정해요.
Demarcator File 사용할 demarcator를 지정하는 파일 이름 또는 텍스트예요. 지정하지 않으면 demarcator가 제공되지 않아요.
FlowFile Insertion Strategy 주어진 FlowFile이 속성에 따라 bin을 종료시키면 해당 FlowFile을 bin의 어디에 포함할지 지정해요.
Footer File 사용할 footer를 지정하는 파일 이름 또는 텍스트예요. 지정하지 않으면 footer가 제공되지 않아요.
Header File 사용할 header를 지정하는 파일 이름 또는 텍스트예요. 지정하지 않으면 header가 제공되지 않아요.
Keep Path Zip 또는 Tar Merge Format을 사용할 때 FlowFiles의 경로를 항목 이름에 포함할지 여부를 지정해요.
Max Bin Age Bin을 완성시킬 Bin의 최대 수명이에요. 예상 형식은
Maximum Group Size bundle의 최대 크기예요. 지정하지 않으면 최대값이 없어요.
Maximum Number of Entries bundle에 포함할 최대 파일 수예요.
Maximum number of Bins 한 번에 메모리에 보유할 수 있는 bin의 최대 수를 지정해요.
Merge Format 콘텐츠를 병합하는 데 사용할 형식을 결정해요.
Merge Strategy 콘텐츠를 병합하는 데 사용하는 알고리즘을 지정해요. ‘Defragment’ 알고리즘은 특성으로 연관된 조각을 다시 단일의 응집된 FlowFile로 결합해요. ‘Bin-Packing Algorithm’은 임의로 선택된 FlowFiles로 채워진 FlowFile을 생성해요.
Minimum Group Size bundle의 최소 크기예요.
Minimum Number of Entries bundle에 포함할 최소 파일 수예요.
Tar Modified Time Tar Merge Format을 사용할 때 Tar 항목이 수정 타임스탬프를 표현식(예: ${file.lastModifiedTime})이나 정적 값으로 저장할지 지정해요. 둘 다 ISO8601 형식 ‘yyyy-MM-dd'T'HH:mm:ssZ’와 일치해야 해요.
mergecontent-metadata-strategy 입력 형식이 메타데이터를 지원하는(예: Avro) FlowFiles의 경우 이 속성은 bundle에 추가할 메타데이터를 결정해요. ‘Use First Metadata’를 선택하면 bundle에 포함될 첫 번째 FlowFile의 메타데이터 키/값이 사용돼요. ‘Keep Only Common Metadata’를 선택하면 값이 같은 상태로 bundle의 모든 FlowFiles에 존재하는 메타데이터만 보존돼요. ‘Ignore Metadata’를 선택하면 출력 bundle FlowFile에 메타데이터가 전송되지 않아요. ‘Do Not Merge Uncommon Metadata’를 선택하면 메타데이터 값이 첫 번째 bundle FlowFile의 값과 일치하지 않는 FlowFile은 병합되지 않아요.

관계 (Relationships)

Name Description
failure bundle을 만들 수 없으면 bundle을 만드는 데 사용되었을 모든 FlowFiles가 failure로 전송돼요.
merged 병합된 콘텐츠를 담은 FlowFile이에요.
original bundle을 만드는 데 사용된 FlowFiles예요.

쓰기 속성 (Writes attributes)

Name Description
filename 2개 이상의 파일이 병합되면 파일 이름은 segment.original.filename 특성에서 가져와요. 해당 특성이 소스 FlowFiles에 없으면 파일 이름은 시스템 시간과 일치하는 나노초 수로 설정돼요. 그런 다음 파일 이름 확장자가 적용될 수 있어요. Merge Format이 TAR이면 파일 이름에 .tar가, Merge Format이 ZIP이면 .zip이, Merge Format이 FlowFileStream이면 .pkg가 추가돼요.
merge.count 이 bundle에 병합된 FlowFile 수예요.
merge.bin.age bin이 병합되어 출력된 시점의 수명(밀리초)이에요. 실질적으로 이 bundle의 어떤 FlowFile이 출력되기 전에 이 프로세서에서 대기한 최대 시간이에요.
merge.uuid 원본 flow files 특성에 추가될 병합된 flow file의 UUID예요.
merge.reason 이 프로세서는 FlowFiles 병합을 위한 여러 임계값을 구성할 수 있어요. 이 특성은 어떤 Threshold로 인해 FlowFiles가 병합되었는지를 나타내요. 각 가능한 값과 그 의미에 대한 설명은 Processor의 Usage/문서와 ‘Additional Details’ 페이지를 참고하세요.

사용 사례 (Use cases)

수행 내용
텍스트 콘텐츠를 가진 FlowFiles를 함께 연결해 더 적고 더 큰 FlowFiles를 만든다.
이진 콘텐츠를 가진 FlowFiles를 함께 연결해 더 적고 더 큰 FlowFiles를 만든다.
SplitText, UnpackContext, SplitRecord 등과 같은 프로세서로 이전에 더 작은 FlowFiles로 분할된 FlowFile을 다시 조립한다.

함께 보기 (See also)

  • org.apache.nifi.processors.standard.MergeRecord
  • org.apache.nifi.processors.standard.SegmentContent

더 알아보기 (Learn more)