JoinEnrichment 프로세서

JoinEnrichment 프로세서

Openflow의 JoinEnrichment 프로세서는 두 개의 서로 다른 FlowFile의 레코드를 결합하는 프로세서예요. 하나는 임의의 레코드를 담은 'original' FlowFile이고, 다른 하나는 original을 강화하는 데 사용할 추가 데이터를 담은 'enrichment' FlowFile입니다.

출처: Snowflake 문서

본문

기능 — 일반 공급 (Generally Available)

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

Bundle

org.apache.nifi | nifi-standard-nar

설명

두 개의 서로 다른 FlowFile의 레코드를 결합합니다. 하나의 FlowFile('original')은 임의의 레코드를 포함하고, 두 번째 FlowFile('enrichment')은 첫 번째를 강화하는 데 사용할 추가 데이터를 포함합니다. 이 프로세서를 구성하는 방법과 달성하려는 다양한 사용 사례에 대한 자세한 내용은 Additional Details를 참조하세요.

태그

combine, enrichment, fork, join, merge, record, recordpath, sql, streams, wrap

입력 요구사항

필수 (REQUIRED)

민감한 동적 속성 지원

false

속성

이름 설명
Default Decimal Precision DECIMAL/NUMBER 값이 'decimal' Avro 논리 타입으로 기록될 때 사용 가능한 자릿수를 나타내는 특정 'precision'이 필요합니다. 일반적으로 precision은 열 데이터 타입 정의 또는 데이터베이스 엔진 기본값으로 정의됩니다. 그러나 일부 데이터베이스 엔진에서 정의되지 않은 precision(0)이 반환될 수 있습니다. 'Default Decimal Precision'은 이런 정의되지 않은 precision 값을 기록할 때 사용됩니다.
Default Decimal Scale DECIMAL/NUMBER 값이 'decimal' Avro 논리 타입으로 기록될 때 사용 가능한 소수 자릿수를 나타내는 특정 'scale'이 필요합니다. 일반적으로 scale은 열 데이터 타입 정의 또는 데이터베이스 엔진 기본값으로 정의됩니다. 그러나 정의되지 않은 precision(0)이 반환되면 일부 데이터베이스 엔진에서는 scale도 불확실할 수 있습니다. 'Default Decimal Scale'은 이런 정의되지 않은 값을 기록할 때 사용됩니다. 값이 지정된 scale보다 더 많은 소수 자릿수를 가지면 값은 반올림됩니다. 예를 들어 1.53은 scale 0에서 2가 되고, scale 1에서는 1.5가 됩니다.
Enrichment Record Reader 'enrichment' FlowFile을 읽기 위한 Record Reader입니다.
Insertion Record Path 'original' 레코드에서 'enrichment' 레코드의 필드가 삽입되어야 할 위치를 지정합니다. RecordPath가 original 레코드의 기존 필드를 가리키지 않으면 강화(enrichment)는 삽입되지 않습니다.
Join Strategy 두 FlowFile을 단일 FlowFile로 결합하는 방법을 지정합니다.
Maximum number of Bins 한 번에 메모리에 보관할 수 있는 최대 bin 수를 지정합니다.
Original Record Reader 'original' FlowFile을 읽기 위한 Record Reader입니다.
Record Writer 결과를 기록하는 데 사용할 Record Writer입니다. Record Writer가 Record에서 스키마를 상속하도록 구성된 경우 상속되는 스키마는 'original' 레코드 스키마와 'enrichment' 레코드 스키마를 병합한 결과입니다.
SQL 평가할 SQL SELECT 문입니다. Expression Language를 제공할 수 있지만 성능이 저하될 수 있습니다. 이 프로세서는 한 번에 두 개의 FlowFile을 다루기 때문에 속성이 어떻게 참조되는지 이해하는 것도 중요합니다. 두 FlowFile 모두 같은 이름의 속성을 가졌지만 값이 다른 경우, Expression Language는 'enrichment' FlowFile이 제공한 값으로 해석됩니다.
Timeout 첫 번째 FlowFile이 프로세서에 도착한 후 두 번째 FlowFile을 기다리는 최대 시간을 지정합니다. 이 시간 이후 첫 번째 FlowFile은 'timeout' 관계로 라우팅됩니다.

관계

이름 설명
failure 'original'과 'enrichment' FlowFile이 모두 프로세서에 도착했지만 레코드 결합에 실패한 경우, 두 FlowFile 모두 이 관계로 라우팅됩니다.
joined original 및 enrichment FlowFile 모두에서 결합된 레코드를 가진 결과 FlowFile이 이 관계로 라우팅됩니다.
original 두 개의 들어오는 FlowFile('original'과 'enrichment')이 이 관계로 라우팅됩니다. 즉, 이 두 FlowFile의 'original' 버전입니다.
timeout 들어오는 FlowFile 중 하나(즉, 'original' 또는 'enrichment' FlowFile)가 이 프로세서에 도착했지만 다른 하나가 구성된 Timeout 기간 내에 도착하지 않으면, 도착한 FlowFile이 이 관계로 라우팅됩니다.

쓰기 속성

이름 설명
mime.type mime.type 속성을 Record Writer가 지정한 MIME 타입으로 설정합니다.
record.count FlowFile의 레코드 수입니다.

참고 항목

  • org.apache.nifi.processors.standard.ForkEnrichment

더 알아보기 (Learn more)