MergeRecord
MergeRecord
여러 record 지향 FlowFiles를 입력 FlowFiles의 모든 Records를 포함하는 단일 FlowFile로 병합하는 프로세서예요. 이 프로세서는 'bins'를 만들고 가득 찰 때까지 FlowFiles를 추가하는 방식으로 작동해요. bin이 가득 차면 모든 FlowFiles가 단일 출력 FlowFile로 결합되고 해당 FlowFile은 'merged' Relationship으로 연결돼요. bin은 잠재적으로 많은 'like FlowFiles'로 구성돼요. 두 FlowFile이 'like FlowFiles'로 간주되려면 (Record Reader가 식별한) 동일한 Schema를 가져야 하며,
출처: Snowflake 문서
본문
기능 — 일반 제공(Generally Available)
Openflow Snowflake 배포는 AWS, Azure, GCP Commercial 리전의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS Commercial 리전의 모든 계정에서 사용할 수 있어요.
Bundle
org.apache.nifi | nifi-standard-nar
설명 (Description)
이 프로세서는 여러 record 지향 FlowFiles를 입력 FlowFiles의 모든 Records를 포함하는 단일 FlowFile로 병합해요. 이 프로세서는 'bins'를 만들고 가득 찰 때까지 FlowFiles를 추가하는 방식으로 작동해요. bin이 가득 차면 모든 FlowFiles가 단일 출력 FlowFile로 결합되고 해당 FlowFile은 'merged' Relationship으로 연결돼요. bin은 잠재적으로 많은 'like FlowFiles'로 구성돼요. 두 FlowFile이 'like FlowFiles'로 간주되려면 (Record Reader가 식별한) 동일한 Schema를 가져야 하며,
태그 (Tags)
content, correlation, event, merge, record, stream
입력 요구사항 (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의 모든 FlowFiles에 존재하는 특성만 보존돼요. |
| correlation-attribute-name | 지정하면 이 Attribute에 대해 같은 값을 가진 두 FlowFile만 함께 bin으로 묶여요. 지정하지 않으면 FlowFiles는 큐에서 꺼내진 순서대로 bundle로 묶여요. |
| max-bin-age | Bin을 완성시킬 Bin의 최대 수명이에요. 예상 형식은 |
| max-bin-size | bundle의 최대 크기예요. 지정하지 않으면 최대값이 없어요. FlowFile이 bin에 추가되면 해당 FlowFile의 모든 레코드가 추가되므로, 이 한도는 마지막 입력 FlowFile의 바이트 수만큼 초과될 수 있는 '소프트 한도(soft limit)'예요. |
| max-records | bin에 포함할 최대 Records 수예요. FlowFile이 bin에 추가되면 해당 FlowFile의 모든 레코드가 추가되므로, 이 한도는 마지막 입력 FlowFile의 레코드 수만큼 초과될 수 있는 '소프트 한도(soft limit)'예요. |
| max.bin.count | 한 번에 메모리에 보유할 수 있는 bin의 최대 수를 지정해요. 이 숫자는 이 프로세서의 최대 동시 스레드 수보다 작아서는 안 돼요. 그렇지 않으면 생성되는 bin이 종종 단일 수신 FlowFile로만 구성될 수 있어요. |
| merge-strategy | 레코드를 병합하는 데 사용하는 알고리즘을 지정해요. ‘Defragment’ 알고리즘은 특성으로 연관된 조각을 다시 단일의 응집된 FlowFile로 결합해요. ‘Bin-Packing Algorithm’은 임의로 선택된 FlowFiles로 채워진 FlowFile을 생성해요. |
| min-bin-size | bin의 최소 크기예요. |
| min-records | bin에 포함할 최소 레코드 수예요. |
| record-reader | 들어오는 데이터를 읽는 데 사용할 Controller Service를 지정해요. |
| record-writer | 레코드를 기록하는 데 사용할 Controller Service를 지정해요. |
관계 (Relationships)
| Name | Description |
|---|---|
| failure | bundle을 만들 수 없으면 bundle을 만드는 데 사용되었을 모든 FlowFiles가 failure로 전송돼요. |
| merged | 병합된 레코드를 담은 FlowFile이에요. |
| original | bundle을 만드는 데 사용된 FlowFiles예요. |
쓰기 속성 (Writes attributes)
| Name | Description |
|---|---|
| record.count | 병합된 FlowFile에는 FlowFile에 기록된 레코드 수를 나타내는 'record.count' 특성이 있어요. |
| mime.type | Record Writer가 나타내는 MIME Type이에요. |
| merge.count | 이 bundle에 병합된 FlowFile 수예요. |
| merge.bin.age | bin이 병합되어 출력된 시점의 수명(밀리초)이에요. 실질적으로 이 bundle의 어떤 FlowFile이 출력되기 전에 이 프로세서에서 대기한 최대 시간이에요. |
| merge.uuid | 원본 FlowFiles 특성에 추가될 병합된 FlowFile의 UUID예요. |
| merge.completion.reason | 이 프로세서는 FlowFiles 병합을 위한 여러 임계값을 구성할 수 있어요. 이 특성은 어떤 Threshold로 인해 FlowFiles가 병합되었는지를 나타내요. 각 가능한 값과 그 의미에 대한 설명은 Processor의 Usage/문서와 ‘Additional Details’ 페이지를 참고하세요. |
| 구성된 Record Writer가 반환하는 모든 특성이 FlowFile에 추가돼요. |
사용 사례 (Use cases)
| 수행 내용 |
|---|
| 많은 임의의 Records를 결합해 단일의 더 큰 파일을 만든다. |
다른 구성 요소를 사용하는 사용 사례 (Use Cases Involving Other Components)
| 수행 내용 |
|---|
| 데이터의 특정 필드에 대해 같은 값을 가진 많은 Records를 결합해 단일의 더 큰 파일을 만든다. |
함께 보기 (See also)
- org.apache.nifi.processors.standard.MergeContent
- org.apache.nifi.processors.standard.PartitionRecord
- org.apache.nifi.processors.standard.SplitRecord